繁体   English   中英

mahout推荐人

[英]mahout Recommender

Apache Mahout推荐文档提到了以下内容:

// Construct the list of pre-computed correlations
Collection <GenericItemSimilarity.ItemItemSimilarity>  correlations = ...;

我不确定如何在上面的线上完成实际的构造。 有人能提供一个例子吗?

ItemSimilarity itemSimilarity  =  new GenericItemSimilarity(correlations);

此示例引用的情况是,您已经通过Hadoop作业计算了相似性,并将其存储在文件系统或数据库中。 正如构造函数文档所示:

A "generic" {@link ItemSimilarity} which takes a static list of precomputed item similarities and bases its responses on that alone. The values may have been precomputed offline by another process, stored in a file, and then read and fed into an instance of this class.

如果你有数千万或更少的推荐,你可以简单地计算相似性并使用另一个GenericItemSimilarity构造函数 - GenericItemSimilarity(ItemSimilarity otherSimilarity, DataModel dataModel)

例如:

DataModel dataModel = new FileDataModel(new File("path://to/file.csv"));
ItemSimilarity itemSimilarity = new LogLikelihoodSimilarity(dataModel);
ItemSimilarity itemSimilarity = new GenericItemSimilarity(itemSimilarity, dataModel);

这里没有什么神奇之处,它只是建议你创建一堆ItemItemSimilarity对象,一个对应于你知道的每个项目 - 项目相似性。

Collection<GenericItemSimilarity.ItemItemSimilarity> correlations = 
  new ArrayList<GenericItemSimilarity.ItemItemSimilarity>();
correlations.add(new GenericItemSimilarity.ItemItemSimilarity(1, 2, 0.5));
...

您可以通过这种方式或任何其他方式来实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM