1

Mahout で推奨エンジンを評価しようとして、ブール値を使用しています。私の質問は、評価関数の「正しい」パラメーターの選択に関するものです。長文になることをあらかじめお詫びいたします。

  IRStatistics evaluate(RecommenderBuilder recommenderBuilder,
                        DataModelBuilder dataModelBuilder,
                        DataModel dataModel,
                        IDRescorer rescorer,
                        int at,
                        double relevanceThreshold,
                        double evaluationPercentage) throws TasteException;

1) 次の 2 つのパラメーターを使用する必要がある例を考えていただけますか。

 - DataModelBuilder dataModelBuilder
 - IDRescorer rescorer

2)double relevanceThreshold変数には、値 GenericRecommenderIRStatsEvaluator.CHOOSE_THRESHOLD を設定しましたが、別の値を設定することで「より良い」モデルを構築できるかどうか疑問に思っていました。

3) 私のプロジェクトでは、ユーザーごとに最大 10 個のアイテムを推奨する必要があります。variable に 10 より大きい値を設定しても意味がないということint atですか?

4) モデルを構築するために多くの時間を待たなければならない場合でも気にしないとすれば、変数double evaluationPercentageを 1 に設定するのは良い習慣ですか? 1 が最適なモデルを与えない場合を思いつきますか?

5) レコメンデーション (変数) の数が増えると、精度/再現率 (私はブール データに取り組んでいることに注意してください) が増加するのはなぜですかint at(私は実験的に証明しました)。

6) はspiting of both testing and training testsmahout 内のどこで行われていますか? また、そのパーセンテージを変更するにはどうすればよいですか? (アイテムベースの推奨事項の場合を除きます)

4

1 に答える 1

2

正確なレコメンデーションだけでは、レコメンデーション システムのユーザーに効果的で満足のいくエクスペリエンスが保証されないため、測定値は参照ポイントとしてのみ取得する必要があります。とはいえ、理想的には、実際のユーザーが、設定したベースライン (ランダムな推奨事項など) に対してシステムを使用し、A/B テストを実行して、どちらがパフォーマンスが優れているかを確認します。しかし、それは面倒であり、あまり実用的ではありません。

N レコメンデーションでの精度と再現率は、レコメンダーにとって優れた指標ではありません。AUC (曲線下面積) などの指標を使用することをお勧めします。

  1. Mahout in Action ブックの例をご覧ください (リンク)
  2. Mahout にしきい値を選択させることは問題ありませんが、計算コストが高くなります
  3. はい、10 個の推奨事項を作成している場合、10 個で評価することは非常に理にかなっています
  4. 実際にはデータのサイズに依存します。100% (つまり 1.0) を使用するのが十分に速い場合は、それを使用します。しかし、何か違うもの (より少ないもの) を使用するRandomUtils.useTestSeed();場合は、評価するたびにサンプリングが同じ方法で行われることがわかるように、テスト時に使用することを強くお勧めします。(ただし、本番環境では使用しないでください)
  5. わからない。データがどのように見えるかによって異なります。しかし通常、精度が上がると再現率が下がり、逆もまた同様です。F1 スコアを参照してください(Mahout IRStatistics からも入手可能)
  6. IRStatistics については、それがどこで発生するか (または発生するかどうか) は完全にはわかりません。トレーニングとテストへの分割に % すら必要ないことに注意してください。どこかにデフォルトがあるかもしれませんが。私があなたなら、Mahout コードを調べて調べます。
于 2013-02-18T17:50:02.913 に答える