将余弦相似性与二进制数据结合使用 - Mahout

时间:2015-10-22 13:58:05

标签: mahout binary-data similarity mahout-recommender cosine-similarity

我有一个布尔/二进制文件,当客户实际购买产品时找到客户和产品ID,如果客户没有购买,则找不到。数据集的代表如下:

Dataset

我尝试过不同的方法,如GenericBooleanPrefUserBasedRecommender,具有TanimotoCoefficient或LogLikelihood的相似性,但我也尝试了GenericUserBasedRecommender与Uncentered余弦相似度,它给了我最高的精度,并分别召回100%和60%。

我不确定在这种情况下使用Uncentered Cosine Similarity是否有意义,或者这是错误的逻辑?什么是Uncentered Cosine Similairty对这样的数据集做了什么。

任何想法都会非常感激。

谢谢。

1 个答案:

答案 0 :(得分:0)

100%的精度是不可能的,所以出了点问题。所有相似性指标都可以与布尔数据一起使用。请记住,空间具有非常高的维度。

您的示例数据只有两个项目(BTW ID应为0,基于旧的hadoop版本的Mahout)。因此,所示的数据集不会给出有效的精度分数。

我使用大型E-Com数据集完成了这项工作,而Log-likelihood在布尔数据上的表现远远超过其他指标。

BTW Mahout已从Hadoop转向Spark,我们唯一的指标是LLR。这里实现了一个完整的Universal推荐器,它带有基于Mahout-Samsara的事件存储和预测服务器: http://templates.prediction.io/PredictionIO/template-scala-parallel-universal-recommendation 幻灯片在此处描述:http://www.slideshare.net/pferrel/unified-recommender-39986309