INFO: Processed 943 usersFeb 5, 2011 10:54:31 AM
org.slf4j.impl.JCLLoggerAdapter infoINFO: Beginning evaluation using 0.9 of
GenericBooleanPrefDataModel[users:1,2,3...]Exception in thread "main" java.lang.IllegalArgumentException:
DataModel doesn't have preference valuesat com.google.common.base.Preconditions.checkArgument(Preconditions.java:90)at org.apache.mahout.cf.taste.impl.similarity.PearsonCorrelationSimilarity.<init>(PearsonCorrelationSimilarity.java:74)at org.apache.mahout.cf.taste.impl.similarity.PearsonCorrelationSimilarity.<init>(PearsonCorrelationSimilarity.java:66)at mia.recommender.ch02.RecommenderIntro$6.buildRecommender(RecommenderIntro.java:163)at org.apache.mahout.cf.taste.impl.eval.AbstractDifferenceRecommenderEvaluator.evaluate(AbstractDifferenceRecommenderEvaluator.java:124)at mia.recommender.ch02.RecommenderIntro.eg6(RecommenderIntro.java:175)at mia.recommender.ch02.RecommenderIntro.main(RecommenderIntro.java:38) |
这个其实,耐心点往后读一点就能看到作者的解释.不过,话说回来,怎样才能将这段代码运行通过呢?究其原因是选择了PearsonCorrelationSimilarity相似度算法,而这个算法是要求偏好值的,所以抛出了" DataModel doesn't have preference values"的异常,我们只需要选适当的相似度算法(或者说不需要偏好值的算法)就可以解决这个问题.这里可选的方案有: Tanimoto coefficient算法和 log-likelihood算法,对应到具体的类:TanimotoCoefficientSimilarity 和 LogLikelihoodSimilarity
本文探讨了在使用Mahout进行推荐系统开发时遇到的异常问题,特别是当选择PearsonCorrelationSimilarity相似度算法时,由于数据模型缺乏偏好值导致的异常。文章提供了解决方案,即可以选择不依赖于偏好的相似度算法,如Tanimotocoefficient算法或log-likelihood算法,并详细介绍了这些算法在推荐系统中的应用。
723

被折叠的 条评论
为什么被折叠?



