0

私は mahout と少し混乱しています: 私はそれを使用する 2 つの方法があるという印象を持っています:

  • Taste Recommender を使用して .jar を実行する
  • ここmahout recommenditembased --input input/recommend_data.csv --output output/recommendation --similarityClassname SIMILARITY_PEARSON_CORRELATIONに示すように、コマンド ラインを使用します。

→正しいですか、それとも同じですか?

私の問題は次のとおりです。user_id、item_id、rating の形式の csv 入力ファイルがあります。100 000 行あり、すべてのユーザーの推奨事項を毎日計算する必要があります。Hadoop がなくても問題ないはずだと読みましたが、そうではありません。作成した .jar は小さなバッチでは機能しますが、入力ファイル全体では機能しません。

コマンド ライン メソッドは 5 分で動作しますが、jar プロジェクトほど柔軟ではありません (特に MySQL データベースとのインターフェイス)。

.jar を使用して hadoop の恩恵を受けることは可能ですか? 私は計算を配布していないので (hadoop は 1 つのサーバーで実行されます)、.jar-without-mahout メソッドと command-line-with-hadoop メソッドの間にこのような違いがあるのは正常ですか?

助けてくれて本当にありがとうございます!

4

1 に答える 1

0

100000 行は多くのデータではありません。疑似分散モード (1 台のマシンのみ) で実行されている場合でも、推奨アルゴリズムの分散バージョンを使用する必要はないと思います。

API を使用して、独自の非分散レコメンダーを簡単に構築できます。以下は、Mahout in Action ブック (読むことをお勧めします) [リンク]の例です。この場合、彼らは同様のユーザーに基づくレコメンダーを使用しており、あなたの質問にあるように、あなたは同様のアイテムに基づいたレコメンダーを使用しています。

ItemSimilarityアイテムの類似性を使用して作成するには、 の代わりにを使用する必要がありますUserSimilarity。同様に、 a の代わりに aGenericUserBasedRecommenderを使用しGenericItemBasedRecommenderます。次に、もちろん、すべてのユーザーを反復処理して、それぞれのユーザーに推奨事項を尋ねます。

お役に立てれば。

于 2013-03-28T10:21:47.707 に答える