机器学习

机器学习中比较实用的是推荐引擎和分类算法
分类算法-k近邻  能有效的提高图片识别的成功率。
还有可以作为垃圾邮件的过滤器。

----------------
推荐引擎
基于用户 GenericUserBasedRecommender
相似度+ 邻域
相似度 UserSimilarity
   实现的算法有
    PearsonCorrelationSimilarity  -- 皮尔逊
    EuclideanDistanceSimilarity -- 欧式距离
    TanimotoCoefficientSimilarity  -- 谷本系数
邻域  UserNeighborhood
   实现的算法
   NearestNUserNeighbordhood  -- 近邻
   ThresholdUserNeighborhood -- 基于阀值

基于物品  GenericItemBasedRecommender
只要考虑相似度 接口为 ItemSimilarity
实现算法和基于用户的一样

基于模型
Slope-One
Slopeone算法不同于前面提到的基于相似度的算法,他计算简单快速,对新用户推荐效果不错,数据更新和扩展性都很不错,预测能达到和基于相似度的算法差不多的效果,很适合在实际项目中使用。

基本原理:
用户 对itema打分 对itemb打分
X 3 4
Y 2 4
Z 4 ?

用户Z对itemb的打分可能是多少呢? Slope one算法认为:所有用户对事物A对itemb的打分平均差值是:((3 - 4) + (2 - 4)) / 2 = -1.5,也就是说人们对itemb的打分一般比事物A的打分要高1.5,于是Slope one算法就猜测Z对itemb的打分是4 + 1.5 = 5.5


分布式
物品之间的共现矩阵 和基于物品的ItemSimilarity (也是放到一个矩阵中)很相似。
只是这个矩阵太大无法放在一台机器上, 按行来切分
类似于 物品X/物品i:次数i, 物品j:次数j, 物品k:次数k
最后乘以该用户的评分向量, 得到最后的结果。

实现相当复杂 可以直接在hadoop平台中调用RecommenderJob 来运行。




----------------------

mahout--使用
pyhton--原理

回归 -- 计算预测值
场景 销售量预测

线性回归  Y=4*X1+18*X2   4和18 是回归系数
非线性回归(多项式)  Y=4*X1/18*X2 

回归的目标是找到最佳拟合线
过拟合现象 - 考虑了太多的噪声

关联分析 -- Apriopri
有点像推荐算法中的物物共现矩阵

P(尿布)=4/5   P(尿布,葡萄酒)=3/5
P(葡萄酒|尿布)=P(尿布,葡萄酒)/P(尿布)=3/4

当物品成千上万时,想找到支持度大于0.8的物物关系,遍历的做法会非常的慢。

Apriopri原理
如果一个项集是非频繁的, 那么它所有的子项集也是非频繁的。


FP-growth  频繁项集
场景 搜索引擎自动补全查询词项, 找出经常在一起出现的词对 (共现词)

支持向量机
二类分类器, 当用其解决多类问题时, 则需要额外的方法对其扩展。
支持向量,就是离分割超平面最近的那些点。
SMO计算最大化支持向量



你可能感兴趣的:(机器学习)