予測に非負の行列因数分解と非負の最小二乗法を使用しています。与えられたデータの量に応じて、予測がどれほど優れているかを評価したいと考えています。たとえば、元のデータは
original = [1, 1, 0, 1, 1, 0]
そして今、与えられたデータが不完全な場合に元のデータをどれだけうまく再構築できるかを確認したいと思います:
incomplete1 = [1, 1, 0, 1, 0, 0],
incomplete2 = [1, 1, 0, 0, 0, 0],
incomplete3 = [1, 0, 0, 0, 0, 0]
そして、大きなデータセットのすべての例でこれを実行したいと考えています。ここでの問題は、元のデータが正のデータの量で変化することです。上の元のデータでは 4 ですが、データセット内の他の例では多かれ少なかれ可能性があります。4 つのポジティブが与えられた評価ラウンドを作成するとしますが、データセットの半分には 4 つのポジティブしかなく、残りの半分には 5、6、または 7 があります。4 つのポジティブがある半分を除外する必要があります。 「予測」をより良くしますか?反対に、データを除外した場合はトレーニングセットを変更します。私に何ができる?それとも、この場合はまったく 4 と評価すべきではないでしょうか?
編集:
基本的に、入力行列をどれだけうまく再構築できるかを見たいと思っています。簡単にするために、「オリジナル」は 4 本の映画を見たユーザーを表すとします。そして、ユーザーが実際に視聴したたった 1 つの映画に基づいて、各ユーザーをどれだけ正確に予測できるかを知りたいのです。たくさんの映画の予測を取得します。次に、ROC と Precision-Recall 曲線をプロットします (予測の上位 k を使用)。このすべてを、ユーザーが実際に見た n 個の映画で繰り返します。n ごとにプロットで ROC 曲線を取得します。たとえば、ユーザーが実際に見た 4 つの映画を使用して、ユーザーが見たすべての映画を予測するところまで来ましたが、その 4 つだけを見た場合、結果が良くなりすぎます。
私がこれを行っている理由は、システムが合理的な予測を行うために必要な「視聴した映画」の数を確認するためです。すでに 3 本の映画を視聴しているときに良い結果しか返されない場合、私のアプリケーションではあまり良くありません。