Mahout中相似度计算类介绍(七)
关键字: mahout similarity 推荐系统 曼哈顿距离
类名:CityBlockSimilarity
名称:曼哈顿距离
原理:曼哈顿距离的实现,用于多维数据空间距离的测度。由十九世纪的赫尔曼·闵可夫斯基所创词汇 ,是种使用在几何度量空间的几何学用语,用以标明两个点上在标准坐标系上的绝对轴距总和。
原理图:
范围:[0,1],同欧式距离一致,值越小,说明距离值越大,相似度越大。
说明:比欧式距离计算量少,性能相对高。
Java例子:
final DataModel dm = new FileDataModel(new File("e:\\recommend\\item.txt"));//文件名一定要是绝对路径 final ItemSimilarity similarity = new CityBlockSimilarity(dm); GenericItemBasedRecommender recommender = new GenericItemBasedRecommender(dm,similarity); List<RecommendedItem> recommendations=recommender.mostSimilarItems(329387l, 3); //329387 为itemID for (RecommendedItem recommendation : recommendations) { System.out.println(recommendation.getItemID()); System.out.println(recommendation.getValue()); } |
参考资料:曼哈顿距离
本文固定链接: http://www.chepoo.com/mahout-class-similarity-calculation-described-7.html | IT技术精华网