Mahout协同过滤
1.Mahout是什么
1 | Mahout是一个算法库,集成了很多算法 |
2.Mahout能做什么
2.1.推荐引擎
1 | 在目前采用的机器学习技术中,推荐引擎是最容易被一眼认出来的,也是应用范围最广的。 |
2.2.聚类
1 | 顾名思义,物以类聚,人以群为。聚类是把具有共同属性的物品进行归类 |
2.3.分类
1 | 分类技术决定了一个事物多大程度上从属于某种类别或类型,或者多大程度上具有或者不具有某些属性。 |
3.Mahout协同过滤算法
1 | Mahout使用了Taste来提高协同过滤算法的实现,它是一个基于Java实现的可扩展的,高效的推荐引擎。 |
3.1.DataModel
1 | org.apache.mahout.cf.taste.impl.model.GenericDataModel |
3.2.相似度
1 | UserSimilarity 和 ItemSimilarity 相似度实现有以下几种: |
3.3.最近邻域
1 | UserNeighborhood 主要实现有两种: |
3.4.推荐引擎
1 | Recommender分为以下几种实现: |
3.5.推荐系统评测
1 | RecommenderEvaluator有以下几种实现: |
4.Mahout协同过滤算法编程
4.1.创建Maven项目





4.2.导入Mahout依赖
pom.xml
1 | <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
4.3.下载电影评分数据
1 | 下载地址:http://grouplens.org/datasets/movielens/ |




4.4.编写基于用户的推荐
BaseUserRecommender.java
1 | package com.matrix.Mahout; |


4.5.编写基于物品的推荐
BaseItemRecommender.java
1 | package com.matrix.Mahout; |


4.6.评估推荐模型
MyEvaluator.java
1 | package com.matrix.Mahout; |

4.7.获取推荐的查准率和查全率
MyIRStatistics.java
1 | package com.matrix.Mahout; |


本文作者 : Matrix
原文链接 : https://matrixsparse.github.io/2016/01/20/Mahout协同过滤/
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
知识 & 情怀 | 二者兼得