機械学習アルゴリズム(機械学習の方法)には様々な種類がありますよね。たくさんある機械学習アルゴリズムの全てを理解するなんてことはとてもできませんが、代表的なものは知っておきたいもの。その中の1つが「決定木(けっていぎ)」です。
そこで今回は、決定木の基本について入門編という形でお伝えしていきます。
一言で言うと「決定木」とは・・・
階層の深さを指定してあげることが大事
決定木(decision tree)分類器は、得られた結果の意味を解釈しやすいかどうかに配慮する場合に魅力的なモデルである。「決定木」は、一連の質問に基づいて決断を下すという方法により、データを分類するモデルであると考えることができます。
例えば、名前のわからない犬の名前を「これ何犬?」と尋ねると「〇〇犬!」と教えてくれるAI(機械学習)をつくろうとして決定木学習を採用した場合、決定木のモデルは次のように段階的に犬の特徴を見つけていくイメージになります。
もっと階層を増やせば(自由に指定可能です)こんな風に犬の画像を判定するために必要な特徴が増えていきます。
このように、決定木モデルは階層がどんどん深くなっていくにつれて犬の細かな特徴(目的変数を分類しやすい特徴)を段階的に見つけていくわけです。これはつまり、階層が増えるほど、決定木モデルがごちゃごちゃして複雑になっていくということです。
決定木モデルでは、一番最初の始点を決定木の根(ルート)と呼び、分割された一つ一つを葉(リーフ)と読んでいます。決定木は、各リーフのサンプルが全て同じクラスに属するようになるまで、上の図のような分割を繰り返すことができます。しかし実際には、リーフを分割しすぎてしまうと過学習に陥りやすくなるため、階層の深さをどこまでにするかについては制限を設けることが重要です。
※過学習:訓練データにだけ適合して、テストデータには適合していないモデルの状態
まとめ
つまり、決定木とは
<参考>
・Andreas C. Muller and Sarah Guido (2016). Introduction to Machine Learning with Python: A Guide for Data Scientists. O’Reilly Media, Inc. (アンドレアス・C・ミューラー、サラ・グイド 中田 秀基(訳)(2017). Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎 株式会社オライリー・ジャパン)
・Sebastian Raschka(2015). Python Machine Learning. Packt Publishing. (株式会社クイープ、福島真太朗(訳)) (2016). 『Python機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)』
AI(人工知能)って「なにそれ美味しいの?」ってレベルだった僕が、AIエンジニアを目指してステップを踏んだり踏まれたりしている記事を書いてます。よかったら読んでみてください(実話)。
コメントをどうぞ