また、ランダムフォレストの決定木の数は100に設定しました。, 評価のベースラインとして、今回も過去記事と同様に単勝人気順位のTop-N Boxの評価を使います。 人工知能で世界に新しい衝撃を。競馬予想人工知能をはじめとし、様々な領域に最先端のAI技術による人工知能サービスを提供。株式会社AlphaImpact - AlphaImpact Co., Ltd. 特にランダムフォレストの方は、Top-2, 3の複勝的中率においてベースラインを超えており、かなり高い精度が出ていることがわかります。, 決定木とランダムフォレストのどちらもやや右肩あがりで実際の予測タイムと若干相関しているように見受けられます。 その意味でも、多数決をとることがいかに重要であるかということがわかります。, ランダムフォレストは決定木を作成するときの分岐による情報利得に基づき、特徴量の重要度が計算できます。 ランダムフォレストは安心して使える機械学習のアプローチです。ハイパーパラメータ調整も必要ありません(木の数の指定は除きます)。対してSVMは"正しい"カーネルや正則化ペナルティ、スラック変数などの調整が必要になります。, ランダムフォレストは調整する変数がSVMに比べて少ないため、とりあえず試してみるという使い方ができます。, また記事中では言及されていませんが、ランダムフォレストは事前に学習データの正規化や標準化を行う必要のない手法です。これも手軽さの一因となっていると思います。. - When Does Deep Learning Work Better Than SVMs or Random Forests? On the contrary, there are a lot of knobs to be turned in SVMs: Choosing the “right” kernel, regularization penalties, the slack variable. 決定木はSVMなどと異なり出力に至る過程を木構造として視覚的に捉えることができるという点で優れています。, 決定木の生成のゴールは、オッカムの剃刀1の原則に従い、なるべく少ない識別規則でクラスの識別を行なうことです。 これは1本の決定木だとその木の葉の数しか値を表現できないためです。 決定木とは木構造をした決定を行なうグラフにより、分類や回帰を行なう教師あり学習アルゴリズムです。 Unfortunately, the major downside of SVMs is that they can be painfully inefficient to train. これを競馬に例えれば、ある人は血統で予想して、またある人はスピード指数で予想して、最後にその予想家たちの意見を多数決するということになります。, ランダムフォレストは決定木ベースのアルゴリズムなのでデータのスケールに影響を受けないという強みがあるだけでなく、特徴量ごとの重要度を測ることができるため、機械学習アルゴリズムの中でも特に人気が高いです。 そのような欠点を解消したアルゴリズムが、次に説明するランダムフォレストです。, ランダムフォレストは、入力となる学習データと識別ルールに使う特徴量をランダム選択し、多数の決定木を作成して多数決を取るアルゴリズムです。 情報利得の指標にはジニ係数やエントロピーを使うのが一般的です。 決定木とは木構造をした決定を行なうグラフにより、分類や回帰を行なう教師あり学習アルゴリズムです。決定木はSVMなどと異なり出力に至る過程を木構造として視覚的に捉えることができるという点で優れています。 決定木の生成のゴールは、オッカムの剃刀1の原則に従い、なるべく少ない識別規則でクラスの識別を行なうことです。分岐に使う特徴量の決定は、分割することによる情報利得が最大となるものを選択します。情報利得の指標にはジニ係数やエントロピーを使うのが一般的です。また、 … I would actually go even further and say that I would not recommend SVMs for most “industry scale” applications. マルチクラスSVMの典型的な実装は、一対他分類法です。したがってSVMは各クラスごとにトレーニングを行う必要があります。逆に決定木やランダムフォレストは手法をそのままマルチクラス分類に使うことができます。, SVMの一対他分類法とは、ある1つのクラスとその他のすべてのクラスでSVMを構築する方法で、これに対応する一対一分類法は2つのクラスを選び、それを分類するSVMを構築する方法です。以下の記事の説明がわかりやすいと思います。, Sebastian氏は典型的な実装法として一対他分類法が使われるとありますが、代表的なSVMライブラリであるlibsvmには一対一分類法が実装されています。, どちらの手法を用いるかによって計算量と分類精度が変わってきます。 評価値は以下の通りです。, 決定木とランダムフォレストの両方で、線形モデルとSVMで超えられなかったtop-1複勝率60%超えを達成しました。 分岐に使う特徴量の決定は、分割することによる情報利得が最大となるものを選択します。 Top-N 評価の定量評価が示唆していた通り、人気ではないが複勝圏内に入ってくる馬の特量を学習しているのだと考えられます。 | また、木の構造をなるべく単純にするために識別規則を削除していく操作を剪定といいます。, 決定木の生成アルゴリズムはCARTやC4.5が代表的です。 ランダムフォレスト(random forests)という機械学習のアルゴリズムのひとつを用いて、後述する条件で解析した場合の結果は以下のようになったようです。 photo credit: 人工知能で東京芝2400mを攻略する *補足* ランダムフォレストとは、 タイムは出走馬の能力以上に、どんな環境で走るのかというのが重要であるということを示唆しています。, 最後に決定木とランダムフォレストで2016年ジャパンカップの複勝確率と走破タイムを予測してみます。, まず、決定木による複勝予測、走破タイム予測のいずれにおいても、同スコアの馬が多く存在します。 $ max_leaf_nodes \in {2, 4, 6,…, 50} $ の探索空間に設定しました。 - Quora, Is random forest better than support vector machines? there are multi-class SVMs, the typical implementation for mult-class classification is One-vs.-All; thus, we have to train an SVM for each class – in contrast, decision trees or random forests, which can handle multiple classes out of the box. 複勝分類および走破タイム予測回帰を学習したランダムフォレストの特徴量の重要度は以下の通りです。, 複勝分類ではその馬の複勝率(place_ratio) 、前走の着差 (prev_time_diff) 、騎手の複勝率 (jockecy_place_ratio) が上位にランクしています。 このように、ランダムフォレストは分類でも回帰でも良い性能が出る有能なアルゴリズムであり、巷で人気があるのも頷けるでしょう。, 今回は決定木とそれをアンサンブルしたランダムフォレストの2つを紹介しました。 決定木は数値を離散的に扱っている性質上、確率やタイムのような連続値を表現するには不向きであることがわかります。, 一方、ランダムフォレストでは同スコアの馬は見当たりません。 また、決定木の種類として分類木だけでなく回帰木も使えるため、回帰モデルとして使うこともできます。, 実験設定は前回の記事と同様に東京芝2,400mの古馬戦の条件で、分類問題は複勝圏内に入るかどうかの2クラス分類、回帰問題は走破タイム回帰を解きます。 やはり複勝に入るかどうかを予想するときは、その馬の複勝率と騎手の複勝率に注目するのが良いのでしょう。 Anything beyond a toy/lab problem might be better approached with a different algorithm. さらに、ランダムフォレストはそのバギングに加えて、決定木ごとに識別で使う特徴量もランダムに選択しています。 分類や回帰の問題を扱う場合、選択する手法としてサポートベクターマシン(SVM)とランダムフォレストが候補に上がってくると思います。, しかし、どちらの手法を使うべきなのでしょうか?どのような問題に対しても、一方の手法を使い続ければ良いのでしょうか?それとも問題によって使い分ける必要があるのでしょうか?, Python機械学習プログラミングの著者であるSebastian Raschka氏は次のように述べています。, I would say that random forests are probably THE “worry-free” approach - if such a thing exists in ML: There are no real hyperparameters to tune (maybe except for the number of trees; typically, the more trees we have the better). ランダムフォレストもアンサンブル学習の1つです。ランダムフォレストの概要図は以下の通りです。, ランダムフォレストに限らず、学習データを繰り返しを許す復元抽出でサンプリングし、出力結果の多数決をとるアンサンブル学習の方法をバギングと呼びます。 こんにちは、けいばとおじさんです。(初めての方はこちらをごらんください。本noteについて書いています。ざっくりいうとディープラーニング等を用いて競馬予想をしていこうというものです。)今日はジャパンカップと国内の「競馬✕機械学習/ディープラーニング」といった取り組み調査およびまとめをしたいと思います。, 何も「競馬✕AI」といったテーマは目新しいものではありません。個人レベルの取り組みならQiitaやブログなど、検索したら出てくるでしょうし、企業レベルの取り組みでもすでに製品化しているものもあります。例えば、私の知っているなかでいうと、「VUMA(ヴーマ)|妙味馬を見抜く競馬予想AI」、「スポニチAI競馬予想 SIVA」といった競馬の予想AIがあります。そんな数あるサービス、メディアのなか、今回調査しようと思ったのが、「AlphaImpact」になります。, とありますが、要は学生がプロジェクトを立ち上げ〜実行した(初心者スタート)ため、彼らの試行錯誤/プロセスに関する公開情報が多いとみました。じゃあ実際どんな情報があったのか、に触れていきたいと思います。, 情報のソースは主に二つありました。それは「公式ブログ」とイベント等での「発表資料」です。主でご活躍されていた方々は最近就職したようなので、2019年に入ってから情報量がぐんと減っているように伺えます。それではトピックだけ掻い摘んで振り返りましょう。, ・2016年彼ら動きは2016年のコンペ(ドワンゴ主催、競馬予想)で賞をとったところから始まります。その時の内容はこちらです。ざっくりいうと以下を実施して予想しましたよ、と。, もう少し細かくいうと、馬Xの特徴量は何か、Random Forestを使用、など彼らの取り組みの方針があるのですが、今回は触れません。, 2017年以降では、「Why Horse Racing x Data Science?」といった観点で, さて、そろそろ長くなってきました。今週のメインレースである、ジャパンカップに話を戻していきます。公式ブログの内容も発表資料との内容との大きな乖離はないように思いますが、時に特定の話題に触れています。例えば「東京2400m」に対する考察です。, AIを活用した東京芝2400mの傾向をAIによって紐解いこう、という取り組みですが、まずは一般的な傾向をおさらいします。記載内容はこちらを要約したものになります。, 今回は私が解析したわけじゃないので先に結果だけ言います。ランダムフォレスト(random forests)という機械学習のアルゴリズムのひとつを用いて、後述する条件で解析した場合の結果は以下のようになったようです。, こういったことを踏まえて予想をしていきたいと思います。今回の予想はまた追記します。. What are the advantages of different classification algorithms? - ReserchGate, drilldripperさんは、はてなブログを使っています。あなたもはてなブログをはじめてみませんか?, Powered by Hatena Blog 決定木のグラフを見てみると、値が離散値になっていることがわかります。 - KDnuggets, What are the advantages of different classification algorithms? パラメータの決定方法はグリッドサーチで行ないました。 馬券購入者は各々自分が重視しているファクター (特徴量) で予想しており、記憶にあるレースも各々異なるため、ランダムフォレストとかなり近いことをしていると言えるでしょう。 一般に、複数の弱識別器を組合せることで強識別器を構成する学習方法を集団学習(アンサンブル学習)と呼びます。 実験結果から、ランダムフォレストがいかに強力なアルゴリズムであるかということがおわかりいただけたかと思います。, これまでの解説の中で既に気がついた人がいるかもしれませんが、オッズは全国の馬券購入者の予想の集合知であり、馬券購入者のアンサンブルです。 Python機械学習プログラミングの著者であるSebastian Raschka氏は次のように述べています。 意訳 : ランダムフォレストは調整する変数がSVMに比べて少ないため、とりあえず試してみるという使い方ができます。 また記事中では言及されていませんが、ランダムフォレストは事前に学習データの正規化や標準化を行う必要のない手法です。これも手軽さの一因となっていると思います。 手軽さという面ではランダムフォレストに軍配があがると思います。 オッズ(人気)の的中率が高いのはそのためです。, 「ある事柄を説明するためには、必要以上に多くを仮定するべきではない」とする原則 ↩︎, 決定木に使用したライブラリ: DecisionTreeClassifier DecisionTreeRegressor ↩︎, ランダムフォレストに使用したライブラリ: RandomForestClassifier RandomForestRegressor ↩︎. 一方、走破タイム回帰では、レースの1着賞金 (win_prize) や頭数 (num_horse) といったレースの格や環境の情報が上位にランクしています。 同時に回収率も100%越えているので、人気だけが取れているということではないようです。 So, I would not recommend them for any problem where you have many training examples. 一方ランダムフォレストは2クラス分類とマルチクラス分類を行うとき、何か特別な処理をする必要はありません。, 用意した学習データの数によって手法を選択することもあると思います。現在QuoraのVPエンジニアリングで元機械学習研究者のXavier Amatriain氏は以下のように述べています。. 一方ランダムフォレストによる回帰は、全ての木の出力結果を平均するので、値の微妙な違いも表現することが出来ています。, 複勝予測と同様に、ランダムフォレストのTop-1複勝的中率は60%を越えています。 使うモデルは複勝予測では分類木を使った決定木とランダムフォレスト、走破タイム予測では回帰木を使った決定木とランダムフォレストです。, また、決定木とランダムフォレストの実装にはscikit-learn23を使いました。 タイム予測の方でも1位評価がキタサンブラック、3位評価にサウンズオブアースと良い予測になっています。 基本的に競馬なんてやるべきではないと私は思っている。胴元の取り分が多いからだ。宝くじに比べればまだましだが、それでも賭け金の20~30%は胴元に取られることになる。*1 しかし今回は、ちょっと思い立って競馬の予測をやってみることにした。 理由は馬券の安さだ。 このように入力データと使う特徴量をランダムにすることで、決定木同士の相関を減らすことができます。 この評価値も線形モデルとSVMの結果を上回った結果となっています。 決定木はCARTのようにデータを2分割していく2分木と、C4.5のように多分木構造を許すものがあります。, 決定木は、欠損値を欠損値として扱うこができる、特徴量のスケールの違いに影響を受けず、標準化のような前処理をしなくても良いというメリットがあり、競馬を含め現実的な問題に適しています。 決定木の精度が低いのは、予測走破タイムのグラフで示したように、回帰木1本が表現できる数値の数が葉の数に限定されるためであると考えられます。 「はじめてでもわかるRandomForest (ランダムフォレスト) 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京 濱田晃一 (hamadakoichi) 予測の中身を見てみると、複勝予測ではキタサンブラックが1着にとれているだけでなく、3着に入線したシュヴァルグラン (6人気) が2番手に評価されています。 バギングをすることで、各識別器は異なるデータで学習を行なうことになるため、データの偏りの影響を受けにくくなります。 SVMの欠点は学習が非常に非効率なことです。なのでデータのサンプル数が多い場合、どのような問題でもおすすめできません。もっと言えば工業規模(industry scale)で使うことは推奨できません。研究室レベルや単純化された問題では他のアルゴリズムよりうまく動作します。, サンプルデータ数が十分に用意できる場合は、SVMではなくランダムフォレストを使うほうが良いと言えそうです。実際、Kinectの身体部位測定の判定にランダムフォレストベースのものが使われているようです。, しかしながら、以上の方針は絶対ではありません。no free lunch定理が示しているとおり、すべてを上回る手法は存在しないからです。, したがって、以上の方針を頭に入れつつデータの特性を考えながら手法を選択することが重要になります。, Python機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear), When Does Deep Learning Work Better Than SVMs or Random Forests? 決定木は $ max_depth \in {1, 2,…, 7} $ 、 $ min_samples_leaf \in {2, 4, 6,…, 20} $ 、 $ max_leaf_nodes \in {2, 4, 6,…, 50} $ 、ランダムフォレストは $ max_feature \in {1, 2, 3,…, 14} $ 、 一方、識別規則が単純なため分散が大きく、入力データの違いによる影響を受けやすいという問題があります。 ブログを報告する, What is ETロボコン? ETロボコンは統一規格のロボット(Mindsor…, Webページの英単語に日本語の意味を表示するChrome拡張「Read Ruby」を公開しました.