によって学習ランダムフォレストを監修:は、だから私はこのように設定されたトレーニングデータを持っている(ただし、はるかに大きい)グループ
各グループ(グループ番号を共有する行は)独特の人々(それぞれのリストが含まれてい Group PID Var1 Var2 Best
0 111 1 1 1 1
1 111 2 2 1 2
2 111 3 1 2 2
3 112 1 1 2 2
4 112 2 2 1 1
5 113 1 1 2 2
6 113 2 1 1 2
7 113 3 2 1 1
8 113 4 3 2 2
各グループ内のPID)、グループ内の1人はBest = 1、残りのグループはBest = 2である。このトレーニングデータを使用するのは、各グループ内のどの人がVar1に基づいて最良か(ベスト= 1)およびVar2。
私はScikitを学び、ランダムなフォレストモデルを使用してテストデータのBestを予測しようとしましたが、グループを考慮せず、グループあたり複数のPIDに対してBest = 1を割り当てることができます。
モデルをトレーニングして実行する方法が不思議だったので、すべての行とグループに割り当てるのではなく、グループごとに1つのベスト= 1を割り当てる方法を学びました。役に立つリソースの方向に私を指摘すると、私はこれについて助けを求めるためにどこに行くべきか正確には分かりません。
あなたの特徴は 'Var1'&' Var2'あるので、これらから 'Best'を予測しようとする:あなたはブール関数のセットとしてこれを読むことができます2つの列。それは、各サンプルを独立して予測し、したがって同じグループ内に多くのサンプルをもたらす可能性があります。 – MMF
いいえ、グループとPIDをフィーチャに追加し、そのフィーチャが目的の結果を生成するかどうかを確認します。ありがとう! – Nizag
私はそれがより良くなるのではないかと恐れています。 'GroupH'という文字をエンコードするには' OneHotEncoder'を使うべきです。それ以外の場合はグループ間でグループをランク付けして何かを意味します。 '111'はグループ '112'よりも重要ではないのです(なぜなら、' 111 <112'なので) – MMF