ランダムフォレストはやはり一番安定しているかも
さて、ゴールデンウィーク中の過密日程も終わり、やっと週一ペースに戻りつつあるトト。
アルゴリズムを使った機械的予想はずっと継続していたわけだけど、イマイチぱっとした結果も残せず、ひたすらデータを作り過去の開催結果についてアルゴリズムを試していました。
もうすでに何年も経過しているのだけれど、コレ!!といった手法は見つかっていません。ただおぼろげながら進化しているのは事実。
データ構成も初期に比べれば格段に進歩?して、まったく似ても似つかないものになっています。詳細には触れませんがかなり工夫しているつもり。
んで、いろんなデータ構成でいろんなアルゴリズムを片っ端から試すという原始的手法で予測結果を比較した結果、現状でのベストなアルゴリズムを発表?したい。
それは基本的にランダムフォレストを使うということ。
ただ単に ”直球ランダムフォレスト” っていうわけではなくて、ちょっと変化球なんですけどね。
WEKAって馬鹿にできないぞ!?
しばらくディープラーニングに凝ってまして、H2O というブラウザベースで操作できる代物に熱中しておりました。しかし、結果が伴わないんですね。
いろんなパターンで試してみたけれども、どうも上手く行かない。そこでずーっと以前から使っているWEKAへいったん戻りました。
WEKAていうのは予測アルゴリズム単体でみると、そんなに種類は多くはないんですね。ただしヴァリエーションを含めるとやや多くなる。
それで、パラメーターも含めると、とんでもなく試行対象が増えてきます。もう人力では到底無理なほど。こういう時はグリッドサーチという手法で ”ベストな設定” を求めるのが効率的なんですが、悲しいかな私にはそのスキルがない。
単純に手引書みたいなのがあれば可能なんですが、それが分からない。
まあ、話はそれちゃったけども、やはり自分のオツムレベルで考えるしかない。そこで集団学習ってヤツですね、これをやろうと。
WEKA では META というクラスでまとめてあります。
いわゆる弱学習器による多数決で決める手法になるかと。ここであるアルゴリズムにランダムフォレストを選択する。
ランダムフォレストっていうのは、属性の組み合わせをランダムに選んで、それぞれの決定木の結果から最も票の多いものを予測結果として採用する・・といったものだったと思います。
いくつの属性をランダムに選ぶのか?とか、そういう選択は自身で決める必要はあります。自動でベストな選択をしてくれるわけではない。決定木・・TREEにおけるランダムフォレストはある程度は信頼できそうな感じではあるけれども、どうもしっくりこない。(とはいっても、かなり使えるのは間違いない)
ここでちょっくら考えたんですね。
属性を何かの基準で選ばせてランダムフォレストを走らせたらどうなるか?
attribute selected classifier がお気に入りだ!
現状での結論はコレです。
画像ではランダムフォレストを選択し、属性選択の基準も示されています。
その名もずばり ”属性選択分類器”
選択基準は 属性を相関によって評価して決めるというもの。因果関係ではなくて、あくまで相関です。
データ構成としては、目的変数に ”相関” のありそうなものをずらーっと並べるだけでいい。いろんなデータパターンを試してもっともしっくりくる結果を出したパターンを採用してみればいい。
ただ、これも完璧ではないので、なにか別の視点から、もうひとつの予測手法を考えなきゃなりません。
なにか欠点を補完するようなものを。
コメント