レコメンダーシステムでトレーニング/テストを分割する方法


8

私はMovieLens10Mデータセットを使用して、ユーザーの評価を予測しています。アルゴリズムを公平に評価したい場合、トレーニングデータとテストデータをどのように分割すればよいですか?

デフォルトでは、データはトレーニングとテストセットに分割されていると思います。「テスト」には、トレーニングセットでこれまで見られなかった映画が含まれています。モデルが各映画をトレーニングセットで少なくとも1回見たことが必要な場合、データをどのように分割すればよいですか?すべてのデータについて各ユーザーのN個を除くすべての評価を取得し、保留されているNxUser_num評価のパフォーマンスを評価する必要がありますか?

回答:


2

Leave-one-outこれに対処するには、おそらく相互検証が最も簡単な方法です。トレーニングに長い時間を必要とするモデルを使用している場合は、n%を指定しない方が適切な場合があります。

この方法では、1つの既知の評価を削除し、それを予測しようとします。評価のnパーセントを削除する場合は、すべてのユーザーの評価の特定の数を選択するのではなく、ランダムに選択します。そして、nをかなり小さく保ちます-10%以下のオーダーです。

レコメンダーシステムの相互検証方法の適切な扱いを次に示します。一般的に:

ホールドアウトは、データセットをトレーニングセットとテストセットの2つの部分に分割する方法です。これらのセットは異なる比率を持つことができます。レコメンダーシステムの設定では、すべて(または一部)のユーザーからいくつかの評価をランダムに選択することにより、パーティション分割が実行されます。選択した評価はテストセットを構成し、残りの評価はトレーニングセットです。この方法は、leave-k-outとも呼ばれます。[17]で、Sarwarら。データセットを80%のトレーニングデータと20%のテストデータに分割します。[18]では、トレーニングとテストの間のいくつかの比率(0.05の増分で0.2から0.95まで)が選択され、それぞれについて実験が異なるトレーニングおよびテストセットで10回繰り返され、最後に結果が平均化されます。[13]では、テストセットはユーザーの10%によって作成されています。テストセットの各ユーザーの5つの評価は差し控えられています。

Leave-one-outは、leave-k-outメソッドでk = 1を設定することによって取得されるメソッドです。アクティブユーザーがいる場合、評価されたアイテムを1つ保留します。学習アルゴリズムは、残りのデータでトレーニングされます。源泉徴収された要素は、予測の正確さを評価するために使用され、すべての評価の結果は、最終的な品質推定値を計算するために平均化されます。この方法には、過剰適合や計算の複雑さなど、いくつかの欠点があります。この手法は、システムのメンバーとしてすでに登録されているユーザーに対するモデルの推奨品質を評価するのに適しています。Karypis et al。[10]は、各ユーザーのゼロ以外のエントリの1つとトレーニング用の残りのエントリの1つをランダムに選択することにより、テストセットを作成するLeave-One-Outの簡単なバージョンを採用しました。[7]では、Breese et al。

holdoutメソッドの簡単な変形は、m分割交差検証です。これは、データセットをm個の独立した折りたたみに分割することで構成されます(折りたたみが重複しないように)。次に、各フォールドはテストセットとして1回だけ使用され、残りのフォールドはモデルのトレーニングに使用されます。[20]と[11]によると、推奨されるフォールド数は10です。この手法は、新しいユーザー(つまり、ユーザーがまだモデルに属していない)がシステムに参加するときのモデルの推奨機能を評価するのに適しています。適切な数のフォールドを選択することにより、平均、分散、信頼区間を計算できます。

お役に立てれば!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.