V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
wuyazi
V2EX  ›  问与答

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

  •  
  •   wuyazi · 2014-04-07 15:44:15 +08:00 · 3743 次点击
    这是一个创建于 3673 天前的主题,其中的信息可能已经有所发展或是发生改变。
    首先建立坐标轴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)。
    16 条回复    1970-01-01 08:00:00 +08:00
    sanddudu
        1
    sanddudu  
       2014-04-07 15:46:53 +08:00
    线性回归方程?
    wuyazi
        2
    wuyazi  
    OP
       2014-04-07 15:59:57 +08:00
    @sanddudu 你是说把OO回归一下,再把XX回归一下吗,那怎么分开啊?
    rock_cloud
        3
    rock_cloud  
       2014-04-07 16:13:03 +08:00
    这个是最简单的线性分类啊,把OO的所有点坐标带入kx+b得到y1,XX的所有点坐标带入kx+b得到y2,然后最大化(y2-y1)^2就可以了。
    11
        4
    11  
       2014-04-07 16:41:55 +08:00
    线性判别分析(Linear Discriminant Analysis, LDA)
    u
        5
    u  
       2014-04-07 16:44:10 +08:00
    同楼上。最基本的模式识别。
    wuyazi
        6
    wuyazi  
    OP
       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
        7
    wuyazi  
    OP
       2014-04-07 18:01:09 +08:00

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

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

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


    难道是代码的问题?
    msg7086
        10
    msg7086  
       2014-04-07 18:34:39 +08:00
    LDA 我记得是 machine learning 的技术吧……
    wuyazi
        11
    wuyazi  
    OP
       2014-04-07 18:42:28 +08:00
    @msg7086 是看machine learning公开课遇到的问题,没有头绪啊,所以来问问。
    想知道用那种技术能解决OO和XX交叉时分类的情况,而且能够准确的得到最小错误数。
    恩,看看LDA怎么弄。
    9hills
        12
    9hills  
       2014-04-07 18:48:54 +08:00 via Android
    @wuyazi 一条直线怎么把交叉的点分开。。
    yangzh
        13
    yangzh  
       2014-04-07 19:33:51 +08:00
    请考虑 svm
    wuyazi
        14
    wuyazi  
    OP
       2014-04-07 19:44:29 +08:00
    @9hills 交叉的意思是OO和XX是相互交错的,不能用直线完美的分开,所以要求错误个数最少
    @yangzh 恩,学习中
    die4live
        15
    die4live  
       2014-04-07 19:52:36 +08:00   ❤️ 1
    理论方面可以看看 [支持向量机通俗导论(理解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
        16
    wuyazi  
    OP
       2014-04-07 20:12:08 +08:00
    @die4live 我在看的书支持向量机在第六章,我才看到第四章朴素贝叶斯。。。谢谢分享,感谢已送。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1305 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 17:39 · PVG 01:39 · LAX 10:39 · JFK 13:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.