clew

気になるモノ 気になる人 気になる言葉

*

データによるサッカー予想 ひとつのアイデア メモ

   

サッカー予想というのは基本的に対戦組み合わせしか事前情報がない。

さて、基本に立ち返って考えてみよう。機械学習技術を使ってこれから行われるサッカーの試合の結果を予測させるためにはどんな情報が必要か?

いつ、どこで、誰と誰が、どんなメンバーで試合をするか? サブとして誰がいつ起用されるか?

ここまできちんと把握できればある程度は予測できる。しかし現実的に考えてみるといくつか障害というか違いがある。

「いつどこで誰とだれが」 という部分までははっきり事前に情報を得ることができる。しかしどんなメンバーで来るか? ということまでは正確には分からない。ましてやサブとして誰がいつピッチに入るか? などという情報は事前には手に入らない。それにスターティングメンバ―やベンチ要員が正式に発表されるのは数時間前であり、現実的に考えて発表資料をみてデータを整えて予測するには時間が足りなさ過ぎる。

というわけで 「事前に入るテストデータ情報」 というのは基本的に対戦カード情報ぐらいしかないです。

いっぽう 「事前に入手できるトレーニングデータ情報」 というのは豊富にあります。これはつまり 過去情報の集積 なので自分が思う通り、どんな形であれ整えることが可能です。

ここで問題になるのは、未知の情報・・・つまりテストデータとして利用できる情報が圧倒的にトレーニングデータに比べて少な過ぎるということ。

常識的に考えて、これらを機械学習で予測させることは上記の理由から不可能だと考えていいです。仮に上で指摘したような正確な情報が事前に入手可能であるならば、現状のアルゴリズムでかなり優秀な分類予測が可能だと思います。

まとめると、現在の予測手法が上手くいかない理由はただひとつ、それはテストデータの正確な情報が圧倒的に不足しているからです。

これを一歩進めるにはどうすればいいか?

それはテストデータの情報をできるだけ正確に推定することです。トレーニングデータと同じ仕様でテストデータを推定すること。

アナログで脳内で推定、推測するように、未知の出来事に対して正確に数値を予測する。もちろん機械学習技術を用いて。

ベイズアプローチを用いて必要とする情報を推定する

ある情報、属性について過去データの蓄積があるとします。ベイズ的考えでは、それが確率分布そのものであるので、その確率に応じて未知データ(テストデータのある数値)について推定します。そしてそれをテストデータの仮の数値(属性の値)とします。

ここで 「なぜベイズなのか?」 という疑問が出てきます。なぜ他の考え方、関数による予測ではダメなのか?

参考として以下のリンクを挙げておきます。たぶん役に立つと思います。

http://machine-learning.hatenablog.com/entry/2017/08/30/221801

私もいろいろ他の方法を用いてテストしてみましたが、ベイズアプローチによる推論が最も良いと感じます。

作業の流れとしては、ベイズアプローチで不足している情報、データを推定してテストデータに補完し、それから予測する。

このやり方は作業が倍に増えて面倒ですが、かなり有効だと思います。欠損値をベイズアプローチで補完させるという考え方は盲点でした。

 

 

 

 - トト予想