画一条线,将平面上的 OO 和 XX 分开,要求错误的个数最少。

2014-04-07 15:44:15 +08:00
 wuyazi
首先建立坐标轴x、y;
随机得到n个点(可能是OO或者是XX),分布在平面上,并已知是OO还是XX及其坐标;
画出一条一直线,将这些点分开;
要求直线一边为OO一边为XX,错误个数的理解为OO跑到了XX的一边,或者XX跑到OO了的一边。

例如:
已知data=[[1,2,OO],[3,4,XX],[2,3,OO],[4,5,OO],[8,1,OO],[2,4,XX]],求直线y=kx+b中的(k,b)。
3877 次点击
所在节点    问与答
16 条回复
sanddudu
2014-04-07 15:46:53 +08:00
线性回归方程?
wuyazi
2014-04-07 15:59:57 +08:00
@sanddudu 你是说把OO回归一下,再把XX回归一下吗,那怎么分开啊?
rock_cloud
2014-04-07 16:13:03 +08:00
这个是最简单的线性分类啊,把OO的所有点坐标带入kx+b得到y1,XX的所有点坐标带入kx+b得到y2,然后最大化(y2-y1)^2就可以了。
11
2014-04-07 16:41:55 +08:00
线性判别分析(Linear Discriminant Analysis, LDA)
u
2014-04-07 16:44:10 +08:00
同楼上。最基本的模式识别。
wuyazi
2014-04-07 17:46:21 +08:00
https://gist.github.com/10017286
代码转自: http://blog.csdn.net/ranchlai/article/details/10303031

是这种方法吗?
第六行shift的变量原来是3,我改成1,想得到OO和XX交叉的分类结果,可是得到的图是这样的。。。
http://ntu.me/di/0TOLB/.jpg
wuyazi
2014-04-07 18:01:09 +08:00

图没出来,微博果然是个好图床。

@rock_cloud 你说的这种方法叫什么名字
@u @11 能说出个名字吗,XXX方法,或XXX分类器

我想把交叉的那些点也分开
die4live
2014-04-07 18:14:12 +08:00
SVM
wuyazi
2014-04-07 18:26:34 +08:00
@die4live 你确定SVM能够准确分类OO和XX交叉的情况吗?
https://gist.github.com/10017883


难道是代码的问题?
msg7086
2014-04-07 18:34:39 +08:00
LDA 我记得是 machine learning 的技术吧……
wuyazi
2014-04-07 18:42:28 +08:00
@msg7086 是看machine learning公开课遇到的问题,没有头绪啊,所以来问问。
想知道用那种技术能解决OO和XX交叉时分类的情况,而且能够准确的得到最小错误数。
恩,看看LDA怎么弄。
9hills
2014-04-07 18:48:54 +08:00
@wuyazi 一条直线怎么把交叉的点分开。。
yangzh
2014-04-07 19:33:51 +08:00
请考虑 svm
wuyazi
2014-04-07 19:44:29 +08:00
@9hills 交叉的意思是OO和XX是相互交错的,不能用直线完美的分开,所以要求错误个数最少
@yangzh 恩,学习中
die4live
2014-04-07 19:52:36 +08:00
理论方面可以看看 [支持向量机通俗导论(理解SVM的三层境界) - 结构之法 算法之道 - 博客频道 - CSDN.NET](http://blog.csdn.net/v_july_v/article/details/7624837#t34) [支持向量机系列 « Free Mind](http://blog.pluskid.org/?page_id=683)

刚才用R试了下是可行的 设为线性核的话 也是可以得到k和b的
wuyazi
2014-04-07 20:12:08 +08:00
@die4live 我在看的书支持向量机在第六章,我才看到第四章朴素贝叶斯。。。谢谢分享,感谢已送。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/107515

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX