机器学习

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

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

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

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

基本原理:
[table]

|用户|对itema打分|对itemb打分
|X|3|4
|Y|2|4
|Z|4|?

[/table]
用户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


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

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


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

mahout--使用
pyhton--原理

[b]回归 -- 计算预测值[/b]
场景 销售量预测

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

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

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

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

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

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


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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值