Machine Learning “for Dummies” (part 2)

机器学习“傻瓜书“

       回到鸢尾花的故事:我们有一系列用花、萼花瓣的宽和长以及种类描述的鸢尾花表,同时有一朵奇葩(姑且称为神秘花),我们要找到它的类属性。为了实现这个任务,我们假设鸢尾花的属性可以推测其种类。
方案1:相同的观测值
我们首先容易想到的方法是寻找另外一个有相同花瓣/花萼长宽属性的鸢尾花。如果我们找到了这样的鸢尾花,那么它的种类很可能和神秘花是相同的。然而我们不能期待一定有这么精确的尺寸。实际上,总会有点些许不同,你无法找到一个匹配的观测值。

方案2:1-最近邻
    取而代之的,我们可以寻找几乎相同的。换句话说就是我们寻找带有接近属性的鸢尾花。如果两朵花有相似的尺寸,他们看起来会很一样,因此他们可能是一个种类。
但是如果有几种不同类的花都和我们的神秘花看起来很相似,这就是个问题了。再次进击思路,我们找其中最相似的那朵(鹤立鸡群的一支)。这意味着我们要恰当地定义什么叫两朵花相似,以及定义一朵鸢尾花a比其他的花都要更类似于花b。
科学工作者的做法是定义两朵花间的"距离"(distance)。如果两朵花距离很大,那么他们是不同类的,如果两朵花的距离很小,那就说明他们相似。有很多定义距离的方式。例如经常使用的一种叫做欧几里得距离。这个叫欧式距离的"怪叔叔"其实和你一般认知上的距离是一样的。
虽然,很容易理解地图上两点的(欧几里德)距离;但是对于理解两朵鸢尾花的距离可能还是有些障碍。
为了计算这个距离我们要回忆一下一个数的"平方"和"平方根"的概念。平方就是一个数乘以它自己,例如2的平方就是2*2=4.求平方根是相反的过程,4的平方根是2。
为了计算距离,你需要把不同属性值的平方相加然后再求平方根。示范如下:


前两朵鸢尾花的距离是:


第1朵和第3的距离是:


    上面计算得来的第2个距离显然更小(3.70比3.90小),这意味着跟第2朵相比,第3朵鸢尾花与第1朵更相似。
有的人已经注意到了欧式距离实际上就是勾股定理。
现在你可能已经明白了怎么找到最相似的鸢尾花:计算出神秘花和其他所有鸢尾花的距离,找到距离最小的那朵。这个方案是在实际当中被经常使用的,称作"1-最近邻"。


方案3:K-最近邻
    一般,1-最近邻工作良好,但是有时候会因为各种原因而显得乏力。其中一种原因是属性的度量糟糕或者不够精确。这样,距离的度量也会糟糕,算法将不能找到真正的Mr.right(最正确的类)。
科学工作者已经找到一个简单的方法解决这个问题:思路进击,咱们寻找最相似的5朵而不是1朵。如果与神秘花最相似的5朵鸢尾花都属于一个类,问题就很简单了:神秘花的类就是这5朵最接地气儿的鸢尾花所属的类。
但是呢,如果5壮士(5朵最接近之花)拥有不同的类属,就要做点事情了:科学工作者会统计每朵花所属类别的数量,数量最多的那个类就代表神秘花的类。例如,给出5个最接近之花,其中1个是 Setosa,1个是Versicolour,剩下的都是Viginica,因此神秘花很可能也是Viginica。
这个方案就叫做5-最近邻。

    思维进击的你肯定会问为啥子是找最接近的5朵?咋不是俩或者50呢?你真机智,这样类似的算法就叫做K-最近邻(k=2,……50,……),很难回答哪种算法是最棒的——它依赖于具体的问题。在实际运用当中,科学工作者会经常测试这些值,选择最好的那个。
下一篇咱们唠一唠年轻而有朝气的强大算法——随机森林,尽情享受吧。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值