1

我已经使用apache mahout测试了基于用户的建议,并且它与提供的示例数据配合良好。Apache Mahout没有提供任何单独的建议

但是,我有我自己的数据,但我无法得到一个单一的建议。我发现这是由于数据太稀疏的原因,但我会很感激专家的建议;)

它只使用购买历史记录,所以我已将所有用户的产品评为4.0 id < - >产品ID购买。

下面是数据文件:http://we.tl/RcR83vcHQI

你能不能给我一些建议,开始有一些有益的建议?

感谢您提前。

回答

1

这是新手对Mahout的常见问题。版本0.9和之前要求您的ID是顺序连续的非负整数。这包括用户和物品ID。它们在Mahout中用作所有输入矩阵中的行和列号。

有几种方法可以解决这个问题,例如为用户和物品ID保留HashBiMaps(Guava集合)。正如你看到的第一个ID分配一个Mahout ID为0,并将关系存储在地图中。继续浏览您的ID以查找下一个唯一的ID并为其分配Mahout ID = 1等。

然后,您将从推荐程序中返回Mahout ID。您可以使用双向HashBiMap将它们转换为您的应用程序特定的ID。

顺便说一句Mahout(1.0快照或更高版本)现在有一个完全新一代的推荐器,它基于使用搜索引擎提供推荐,Mahout来计算模型。它会直接接受你的输入 - 在里面做ID转换。它比旧的Hadoop版本具有许多优点,包括:

  1. 多模式:它可以在许多不同的项目集上接收许多不同的用户操作。这使您可以使用用户的大部分点击流来推荐。
  2. 实时结果:它在Solr或弹性搜索中具有非常快速的可扩展服务器。
  3. 由于实时性,它可以推荐给新用户或具有最近历史记录的用户。较早的Hadoop Mahout推荐人只向用户和培训数据中的项目推荐 - 他们无法对未用于培训的历史记录做出反应。新推荐人可以使用实时收集的数据,即使是新用户。

新的多式联运推荐者被描述如下:

+0

感谢您的宝贵信息。然而,我仍然有0 reco :((使用hashbimap) – Devous 2015-02-10 10:47:59

+0

你可以发布一个数据片段的数据在pastebin或一些这样的地方? – pferrel 2015-02-11 16:25:57

+0

它已经发布与我的第一篇文章 – Devous 2015-02-12 17:39:50

相关问题