从零开始学mahout(一)第一个recommender engine
来源:互联网 发布:php7论坛源码 编辑:程序博客网 时间:2024/05/22 05:06
ubuntu下,开发环境的搭建见之前:mahout建立 eclipse工程。
最近准备集中精力学习以下mahout。参考书就是mahout in action。
书中做了一个概念介绍后,就让大家来体验以下recommender。建一个简单的recommender engine
一
创建一个文件。路径:/home/feng/intro.csv
内容如下:
1,101,5.0
1,102,3.0
1,103,2.5
2,101,2.0
2,102,2.5
2,103,5.0
2,104,2.0
3,101,2.5
3,102,4.0
3,105,4.5
3,107,5.0
4,101,5.0
4,103,3.0
4,104,4.5
4,106,4.0
5,101,4.0
5,102,3.0
5,103,2.0
5,104,4.0
5,105,3.5
5,106,4.0
数据的含义第一项是user id,第二项是item id,第三项是两者的喜好系数。
喜好系数1到5,5为最喜欢,1为不喜欢。
二
在mahout的mahout-example下创建java文件。包位置找一个:org.apache.mahout.cf.taste.example。
源代码
package org.apache.mahout.cf.taste.example;
import java.io.File;
import java.util.List;
import org.apache.mahout.cf.taste.impl.model.file.FileDataModel;
import org.apache.mahout.cf.taste.impl.neighborhood.NearestNUserNeighborhood;
import org.apache.mahout.cf.taste.impl.recommender.GenericUserBasedRecommender;
import org.apache.mahout.cf.taste.impl.similarity.PearsonCorrelationSimilarity;
import org.apache.mahout.cf.taste.model.DataModel;
import org.apache.mahout.cf.taste.neighborhood.UserNeighborhood;
import org.apache.mahout.cf.taste.recommender.RecommendedItem;
import org.apache.mahout.cf.taste.recommender.Recommender;
import org.apache.mahout.cf.taste.similarity.UserSimilarity;
public class RecommenderIntro {
/**
* @param args
*/
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
DataModel model = new FileDataModel(new File("/home/feng/intro.csv"));
UserSimilarity similarity = new PearsonCorrelationSimilarity(model);
UserNeighborhood neighborhood = new NearestNUserNeighborhood(2,similarity,model);
Recommender recommender = new GenericUserBasedRecommender(model,neighborhood,similarity);
List<RecommendedItem> recommendations = recommender.recommend(1,1);
for(RecommendedItem recommendation:recommendations){
System.out.println(recommendation);
}
}
}
三
运行run
- 从零开始学mahout(一)第一个recommender engine
- Mahout(2) Recommender
- 从零开始学jBPM6(四)- 第一个项目HelloWorld
- 菜鸟从零开始的第一个应用上线记(一)
- web前端之html从零开始(一)-----第一个html
- 从零开始学Android(一)
- 从零开始学centos(一)
- 从零开始学Makefile(一)
- 从零开始学爬虫(一)
- 第3章、第一个“Hello,world!”之Android App(从零开始学Android)
- 第3章、第一个“Hello,world!”之Android App(从零开始学Android)
- 第3章、第一个“Hello,world!”之Android App(从零开始学Android)
- 第3章、第一个“Hello,world!”之Android App(从零开始学Android)
- 第2步:第一个“Hello,world!”之Android App(从零开始学Android)
- 三十而立,从零开始学ios开发(三):第一个有交互的app - minglz
- 从零开始学Objective-C(02)第一个Objective-C程序
- 从零开始学android<第一个android 永远的helloworld.二.>
- 从零开始学java第二章 第一个java程序
- ibatis中查询视图v$
- objective-C 的内存管理之-引用计数
- DBCP数据库连接池实例1
- 25 b下载和Google play仍在快速增长
- CSS3制作卷角菜单
- 从零开始学mahout(一)第一个recommender engine
- android ndk
- 汇编 rdmsr, wrmsr
- sql中with as的用法
- ORA-28547的解决
- HTTPS,证书有效期与手机时间不符合时,如何让验证通过
- 全面分析CRC算法
- Vmware给ubuntu添加新硬盘(转)
- 合理规划您的硬盘分区