机器学习中的10个有趣的算法( 二 )


机器学习中的10个有趣的算法

文章插图
 
得到weight vector为(a , 2a) , 将两个点代入方程 , 代入(2 , 3)另其值=1 , 代入(1 , 1)另其值=-1 , 求解出 a 和 截矩 w0 的值 , 进而得到超平面的表达式 。
机器学习中的10个有趣的算法

文章插图
 
a求出来后 , 代入(a , 2a)得到的就是support vector , 
a和w0代入超平面的方程就是support vector machine 。
5、朴素贝叶斯
举个在 NLP 的应用:
给一段文字 , 返回情感分类 , 这段文字的态度是positive , 还是negative:
机器学习中的10个有趣的算法

文章插图
 
为了解决这个问题 , 可以只看其中的一些单词:
机器学习中的10个有趣的算法

文章插图
 
这段文字 , 将仅由一些单词和它们的计数代表:
机器学习中的10个有趣的算法

文章插图
 
原始问题是:给你一句话 , 它属于哪一类 ?
通过bayes rules变成一个比较简单容易求得的问题:
机器学习中的10个有趣的算法

文章插图
 
问题变成 , 这一类中这句话出现的概率是多少 , 当然 , 别忘了公式里的另外两个概率 。
例子:单词“love”在positive的情况下出现的概率是 0.1 , 在negative的情况下出现的概率是0.001 。
机器学习中的10个有趣的算法

文章插图
 
6、K最近临算法
给一个新的数据时 , 离它最近的 k 个点中 , 哪个类别多 , 这个数据就属于哪一类 。
例子:要区分“猫”和“狗” , 通过“claws”和“sound”两个feature来判断的话 , 圆形和三角形是已知分类的了 , 那么这个“star”代表的是哪一类呢?
机器学习中的10个有趣的算法

文章插图
 
k=3时 , 这三条线链接的点就是最近的三个点 , 那么圆形多一些 , 所以这个star就是属于猫 。
机器学习中的10个有趣的算法

文章插图
 
7、K均值算法
先要将一组数据 , 分为三类 , 粉色数值大 , 黄色数值小。
最开始先初始化 , 这里面选了最简单的 3 , 2 , 1 作为各类的初始值。
剩下的数据里 , 每个都与三个初始值计算距离 , 然后归类到离它最近的初始值所在类别 。
机器学习中的10个有趣的算法

文章插图
 
分好类后 , 计算每一类的平均值 , 作为新一轮的中心点:
机器学习中的10个有趣的算法

文章插图
 
几轮之后 , 分组不再变化了 , 就可以停止了:
机器学习中的10个有趣的算法

文章插图
 

机器学习中的10个有趣的算法

文章插图
 
8、Adaboost
adaboost 是 bosting 的方法之一 。
bosting就是把若干个分类效果并不好的分类器综合起来考虑 , 会得到一个效果比较好的分类器 。
下图 , 左右两个决策树 , 单个看是效果不怎么好的 , 但是把同样的数据投入进去 , 把两个结果加起来考虑 , 就会增加可信度 。
机器学习中的10个有趣的算法

文章插图
 
adaboost 的例子 , 手写识别中 , 在画板上可以抓取到很多 features , 例如始点的方向 , 始点和终点的距离等等 。
机器学习中的10个有趣的算法

文章插图
 
training的时候 , 会得到每个feature的weight , 例如2和3的开头部分很像 , 这个feature对分类起到的作用很小 , 它的权重也就会较小 。
机器学习中的10个有趣的算法


推荐阅读