【競馬・番外編】レース推奨印モデルの改良

記事
エンタメ・趣味
先週の結果を見ると、各馬に対する印はそこそこの結果だったのに、レースに対する印があさっての方向でして、結果かなりマイナスになっておりました。

「そこで日和らずに、ワイドでも人気薄に流しておいたら!」
「そこで調子に乗りすぎず、複勝で当てに行けば!」

↑こんな後悔ばかり。

先週までのモデルは、RapidMiner(RM)の処理の中で「Vote」という者を使っておりました。要は「多数決」。
データ予測モデルというのは、それこそ万能のもの、これさえ使えばいつもパーフェクトというものがあればいいのですが、そんなものはあり得ません。逆に、それぞれはあまり当てにならなくてもなんとなく寄り集まると民意が形成される=三人寄れば文殊の知恵、のように、4つのモデルを少しだけチューニングしてVoteにかけておりました。
結果、やたら「見送り」が多い結果となった上に、上述の通りあまり美味しい動きを見せてくれませんでした。

実は「多数決」にも2種類あり、例えばA・B・Cの3つからどれか1つ選ぶというケースの場合、
 ・A・B・Cそれぞれの「支持者」の数で多数決(Hard Voting)
 ・Xさんは、Aに40%、Bに30%、Cに30%の思いがある中でAを支持
  →このような割合を平均し、最終的に一番多いものを選択(Soft Voting)

どうやら、RMのVoteはHard Votingのようです。そのうえ、Cross Validationも甘かった。その結果、船頭多くして船山に上る結果になってしまってたわけですね。

では、今回は何をしているか?ものすごく粗くいえばSoft Votingに近いことを考えようとして、「Stacking」というものを試しております。
各モデルでそれぞれのクラスに対する「予測出現確率」が出てくるのですが、それらを説明変数として、別の新たなモデル(今回はNaive Bayesというシンプルなもの)に食わせ予測させる、これがStackingです。

「【競馬】トリガミ回避&結果振り返り(回収率等)→一応、完成!」というブログで載せておりましたマトリクス(Confusion Matrix)は、対角線のところの数字が小さく、やたら予測で「消し」(見送り)の多い結果を返しておりましたが、今回のモデルでは対角線上の数字が大きくなっている(予測結果が合っている)ような気がします。
もっとも、今回の基データにのみ合いすぎて(オーバーフィッティング)、新しいデータにはからっきし使えない(汎化性能が低い)、というおそれは充分あるのですが…。
スクリーンショット 2021-11-23 23.23.03.png

サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す