机器学习方法概述

KNN k临近算法

遍历所有训练样本,求距离最近的点的结论,作为最后的预测结果

MR版:map求样本距离(key:样本,value:距离),combine求的最小值,是过滤功能,reduce就有一个求得距离最小值

 

贝叶斯:

贝叶斯定理公式:P(A|B)=P(B|A)*P(A)/P(B)

贝叶斯将在属性条件下的结论的概率转为:在结论条件下属性的概率的乘积*结论的概率

求得样本属性的在结论上的出现次数,样本结论的次数,商就是P(B|A)

MR版:map求拼接keyvalue(key:属性-结论  |结论,value:1)

              combine 求和(key:属性-结论  |结论,value:count)

              reduce和combine相同

 

决策树:

id3

香农熵 

 根据香农熵最大的来选择分裂特征,香农熵中的p(x)是在结论ci下xi的概率, 可以写成p(x,c|c);

 

c4.5

信息增益

p(c|c)-p(x,c|c)

信息增益率

p(c|c) - p(x,c|c) / p(x|x)

 

CART

 cart的决策树是二叉树,每次取特征值得规则是使得信息杂质最少

方法一:GINI 1- pow(yi/y,2)-pow(yi/y,2)

方法二:方差 pow(e-yi,2)+pow(e-yi,2)

 

 

 

SVM:

 SVM的原理是用超平面分割数据,不同分类在超平面的两侧;使得超平面离样本几何距离最大;

 使用对偶和梯度上升,调整超平面的参数W向量,使得所有样本都满足kkt条件

wx+b = 0 为超平面,wx+b=1和wx+b=-1为两类边界

 

 

 

logistic回归分类

是将y = 0|x<a;y=1|x>a 线性化为函数sigmod f(x) = 1/[1+e^(-x)]

 

使用坐标梯度上升求得参数w向量,求导后w := w + a(y-h(x))x ,其中a是每次梯度上升的步长,x是属性向量,h(x) = sigmod f(wx),不断循环进行梯队上升,知道w稳定或最大循环次数 

 

 

数值预测

线性回归

回归函数的确定,y=f(x) , 使得y-h(x)最小

方法一:使用梯度下降,求得w,同上

方法二:使用最小二阶乘

 

bagging 是用多个独立的分类器

 

boosting 是用多个分类器,分类器之间会有影响,后面的分类器会加重对前面分类错误的样本进行分类 

 

adaboost

是基于boosting,使用多个弱分类器,每个样本有权重D,每个弱分类器也有权重a

a = 正确分类的样本/所有样本

d = d*e^-a/sum(d) 正确的样本

d = d*e^a/sum(d) 错误的样本

 

随机森林

进行行抽取,和列抽取

行抽取用可放回的抽取 m ,列抽数量是远远小于数据特征n<<N

 

聚类方法: 

kmeans

1.随机选择k个中心点

2.遍历所有训练样本,将样本分给距离最近的k点

3.遍历结束后更新k点,使其为所属样本的中心点

重复2,3步,知道k稳定,或循环次数到达阈值

 

二分kmeans

1.让所有样本属于一个集簇,求得中心点

2.用中心点二分所有样本,重新计算各自的中心点,选择误差最大的集簇作为下一个二分的数据集

重复 2操作,知道k点到达预期数,或误差到达阈值

 

canopy

canopy不是硬分类器,他有t1,t2,detal三个值,t1>t2

随机取一个样本为canopy,当d<t1时,样本在canopy中,并删除所有d<t2的样本,再进行循环

在mahout中,canopy不是删除样本这样实现的,mahout的mapper和reduce的操作一样,都是添加canopy中心点,当d<t1时,属于canopy中心点,当d>t2则新生成canopy中心点

 

mean shift

中心点漂移,有着梯度上升思想,不断优化中心点

mahout算法中用canopy修改,当d<t1时,属于canopy中心点,并记录此样本在canopy中,在reduce中增加一个操作,是跟新canopy属性,用canopy记录的样本去计算canopy中心点

 

fp-growth:

求频繁集合的算法,只用遍历数据集两次,就可建立fp树

遍历集合,求最小项集的出现次数

给所有样本内部排序,并且过滤掉出现次数小于阈值的项集

用排序好的数据建立fp树,树是字典树,节点是频繁集合的路径,值是路径出现次数

fp树建好后,使用header链表,自底向上获得频繁项

mahout的分布式fp:

第一次遍历样本一样,求最小项集的出现次数

根据排序的最小项集,分割项集,如a,b,c,d,e,f,g, 分割数据a,b,c,d,e,f,g;  c,d,e,f,g;  e f g; 这样频繁集合不会应为分片而丢失(可以理解为fp树从顶向下分割数据)

 

 基于项目的推荐算法

计算人-物

计算物-物

获得物和物的相似矩阵

在用相似矩阵 * 人-物 ,就是人和其他物品的关联度

转:http://blackproof.iteye.com/blog/2092074

posted @ 2014-12-15 09:19  蓝夜  阅读(392)  评论(0编辑  收藏  举报