Mahout推荐算法中的其他数据结构

来源:互联网 发布:网络矩阵价格 编辑:程序博客网 时间:2024/06/13 13:03

Mahout推荐其他相关数据结构

 

偏好:

推荐算法的基础

Preference

用户偏好接口

具体实现

GenericPreference包含用户idlongItem idlong偏好值float

BooleanPreference 包含用户Id Itemid

 

偏好数组

PreferenceArray

Preference 数组 但是以更节约内存的方式表达(只保留一个UseID或者ItemID

包含以下实现

BooleanItemPreferenceArray保存一个ItemID和一个UserID数组

BooleanUserPreferenceArray保存一个UserID和一个ItemID数组

GenericItemPreferenceArray保存一个ItemID和一个UserID数组和一个偏好值数组(与UserID按顺序一一对应)

GenericUserPreferenceArray保存一个ItemID和一个UserID数组和一个偏好值数组(与ItemID按顺序一一对应)

 

邻居

Neighborhood

基于用户推荐时 考虑到计算量和排除不相干人物影响等方面因素一般只考虑与推荐用户相似程度在一定范围内的用户的影响

包含以下实现

NearestNUserNeighborhood:将相似用户排序取最相关的前n个用户

ThresholdUserNeighborhood:基于用户相似程度门限,只有用户相似程度在一定门限上的用户参与推荐计算

CachingUserNeighborhood:同前 相似用户缓存防止重复计算

 

推荐测试相关

以下接口为测试推荐系统使用,一般需要自己实现

DataModelBuilder 创建数据接口 输入测试数据

RecommenderBuilder 创建推荐系统

RecommenderEvaluator 推荐效果评价

可以参考

examples\src\main\java\org\apache\mahout\cf 源码目录下的实现

 

SlopeOne算法中的评分偏差

DiffStorage

Slopeone算法使用的评分偏差接口

包含以下实现

MemoryDiffStorage 基于内存保存偏差

FileDiffStorage 基于文件保存偏差

 

原创粉丝点击