曼哈顿距离:CityBlockSimilarity对数似然距离: LogLikelihoodSimilarity 示例代码:UserSimilarity us = new CityBlockSimilarity(dm);ItemSimilarity is = new CityBlockSimilarity(dm); 步骤三(仅UserCF需要):选择近邻算法如果选择使用UserCF算法做推荐,则在完成相似度计算方法的指定后,需要指定近邻算法。
NearestNUserNeighborhood
指定距离最近的N个用户作为邻居。示例:UserNeighborhood unb = new NearestNUserNeighborhood(10, us, dm);三个参数分别是: 邻居的个数,用户相似度,数据模型
ThresholdUserNeighborhood
指定距离最近的一定百分比的用户作为邻居。示例:UserNeighborhood unb = new ThresholdUserNeighborhood(0.2, us, dm); 三个参数分别是: 阀值(取值范围0到1之间),用户相似度,数据模型 步骤四:创建推荐器实施推荐算法的最后一步就是创建推荐引擎,Taste为UserCF和ItemCF算法,针对有用户评分和没用户评分的情况,分别提供了推荐器:
用户偏好数据包含评分
示例代码:UserCF:Recommender re = new GenericUserBasedRecommender(dm, unb, us);ItemCF:Recommender re = new GenericItemBasedRecommender(dm, is);
用户偏好数据不包含评分
示例代码:UserCF:Recommender re = new GenericBooleanPrefUserBasedRecommender(dm, unb, us);ItemCF:Recommender re = new GenericBooleanPrefItemBasedRecommender(dm, is);题外话:通过召回率和查准率的测试, CityBlockSimilarity + UserCF 的推荐效果最好。示例代码:用户偏好数据不包含评分 + CityBlockSimilarity + UserCF