我有一个布尔/二进制文件,当客户实际购买产品时找到客户和产品ID,如果客户没有购买,则找不到。数据集的代表如下:
我尝试过不同的方法,如GenericBooleanPrefUserBasedRecommender,具有TanimotoCoefficient或LogLikelihood的相似性,但我也尝试了GenericUserBasedRecommender与Uncentered余弦相似度,它给了我最高的精度,并分别召回100%和60%。
我不确定在这种情况下使用Uncentered Cosine Similarity是否有意义,或者这是错误的逻辑?什么是Uncentered Cosine Similairty对这样的数据集做了什么。
任何想法都会非常感激。
谢谢。
答案 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