只是简单谢了一个Demo,先贴上GitHub地址。
https://github.com/wang135139/recommend-system
基本概念就不过多介绍了,相信能看明白的都了解。如果想了解相关推荐先做好知识储备:
1.什么事推荐算法
2.什么是基于邻域的推荐算法
笔者选用的是GroupLens的MoviesLens数据
传送门GroupLens
数据集处理
此处截取数据 UserId + MovieId 作为隐反馈数据。个人的实现方式并不是很好,之后再考虑优化,如果有好的想法欢迎小纸条。
基本设置项目结构如下:
/project
/analyzer --推荐分析
-CollaborativeFileringanalyzer
/bean --数据元组
-BasicBean
-HabitsBean
/input --输入设置
-ReaderFormat
/recommender --推荐功能
-UserRecommender
首先思路是截取MovieLens数据,转化为格式化的书籍格式。MovieLens数据基本格式为
| user id | item id | rating | timestamp |
读取后的数据为表结构,实际可以用 Map 或者 二维数组 进行存储。
考虑到之后转化的问题,决定用二维数组。
设置BasicBean用于存储表结构中的行,主要设置List < String >用于存储一行数据中的单项数据
/**
* A row of data sets describes in witch the parameters are included.
*
* @author wqd
* 2016/01/18
*/
public class BasicBean {
private List<String> parameters;
// private int num;
private boolean tableHead;
///Default constructor,the row set n floders and is or not a table head
public BasicBean(boolean head) {