1
実際のデータセットの線形回帰/予測に失敗する
回帰を実行しようとして失敗したデータセットがあります。 状況: 何千人ものバトルロボットオペレーターが、バトルロボットを使用して互いに戦います。 戦闘ロボットの中には、強力で強力なものもあれば、弱いものもあります。強いものはより頻繁に勝ち、より多くのダメージを与えます。 ロボットオペレーターのスキルはさまざまで、スキルの高いオペレーターが勝つ頻度が高く、より多くのダメージを与えます 彼らの戦いの結果に関するいくつかの要約情報がありますが、詳細のすべてではありません。 彼らが戦闘で使用した戦闘ロボットとその回数(勝利した戦闘の数を含む)、および彼らが与えた合計ダメージ(2種類のダメージAとダメージB)がわかります 一部のロボットはダメージAを与えるのが得意ですが、他のロボットはダメージBを与えます。 戦闘で使用したロボット(およびその回数)のみに基づいて不明な戦闘ロボットオペレーターの場合、達成できる各種類のダメージの量と、勝った可能性が最も高い戦闘の割合(%)を推定します 例えば: ジョンはロボットAを4戦、ロボットBを2戦使用し、240ユニット分のダメージを与えました ジェームズはロボットAを1戦、ロボットBを10戦使用し、1010ユニット分のダメージを与えました したがって、ロボットAはおそらく1戦あたり10ユニットのダメージAを与える一方、ロボットBは1戦あたり100ユニットのダメージAを与えると見積もることができるため、2つのロボットのそれぞれをプレイしただけのマシューによって与えられたダメージAを見積もるそれぞれ2戦、220 ==(10 * 2 + 100 * 2)と推定されます。 残念ながら、実際のデータはそれほどクリーンで簡単ではありません。 ロボットオペレーターのスキルには大きな違いがあります。たとえば、優れたオペレーターはロボットAに20ユニットのダメージを与え、悪いオペレーターは5ユニットしかダメージを与えることができません。 小さなサンプルの場合、対戦相手が引き寄せられるため、ランダムな差異があります(たとえば、誰かが強い対戦相手を引き、対戦相手よりも優れたロボットを持っているにもかかわらず負けます)。 最高のロボットオペレーターが最高のロボットを選んでより頻繁に戦闘に参加するという点で、いくつかのマイナーな選択バイアスがあるかもしれません 実際のデータセットはこちらから入手できます(既知の戦闘オペレーターの結果の63万件)。 http://goo.gl/YAJp4O データセットは次のように構成され、行ごとに1つのロボットオペレーターエントリがあります。 ラベルのない列1-オペレーターID 戦闘-このオペレーターが参加した戦闘の合計 勝利-このオペレーターが獲得した合計戦闘数 敗北-このオペレーターが負けた合計戦闘数 DamageA-与えられたダメージAポイントの合計 DamageB-与えられたダメージBポイントの合計 次の130組の列: battles_ [robotID]-ロボット[robotID]を使用した戦闘 victories_ [robotID]-ロボット[robotID]を使用して獲得した勝利 これまでに行ったこと: R biglmパッケージを使用していくつかの線形モデルをdamageA ~ 0 + battles_1501 + battles_4201 + ...試して、ロボットごとに「期待される」値のフィッティングを取得するなどの式を作成しました。 同じですが0 …