機械学習の手法のうち「決定木」について。
目次
AI・ディープラーニングの全体像
- 人工知能
- 機械学習
- ディープラーニングの基本・応用
- ディープラーニングの研究
- AIプロジェクト
- AI社会実装に伴う法律・倫理
機械学習(教師あり学習)の手法④決定木
決定木の概要
- 「決定木(Decision Tree)」→条件分岐を用い、ツリー構造に沿ってデータをグループに分割しつつ、パターンを認識する手法
※需要予測や購買履歴分析に使われる - 回帰木→回帰問題に使う決定木
分類木→分類問題に使う決定木 - クラス分類を適用した模式図の形状から、木(ツリー)と呼ばれる
- 学習データにある「特徴量」を軸として、データをソートし、複数のグループに分割していく
- 分割後に最下段に来る各ノードが、できるだけ同じクラス(カテゴリー)のデータで構成されるように、「分割軸」と「閾値」を探していく
- もっともよく分割する=「ノード内のデータがすべて同じクラスに属している状態」
→ノード内の不純度を最大限減らす
※不純度の評価指標として、ジニ不純度やエントロピーが用いられる - 分割軸(特徴量)と分割の閾値との組み合わせは、決定木の内部のアルゴリズムによって、自動的に最適化される
決定木のメリット
データ処理の仕組みの理解しやすさ
- 構造化データを扱うため、特徴量が扱いやすく、モデルによるデータ処理の仕組みが直感的で分かりやすい
- 決定木をツリー構造で可視化できる
- どのような基準で分割が行われたのか説明できると、データの準備やモデルの改善もしやすい
学習結果の説明しやすさ
- 「ランダムフォレスト(決定木のアンサンブル学習器)」は、特徴量の重要度を可視化することができる
→「各変数がどれほど予測に影響したのか」 - 分析結果を説明しやすく、施策に利用しやすくなる
決定木のデメリット
- 決定木は、データを綺麗に分類することを優先する傾向があり、「過学習しやすい」
- 外れ値やノイズに影響されやすく、データ分割に偏りが生じやすい
- データ量が少なめなのに特徴量の数が多い場合に特に起きやすい
(特徴量の数が多いとツリー構造が複雑になり、偏りが引き起こされたときに、流れを補正するためのデータ量が不十分な状態)
決定木のアンサンブル学習器
- 「アンサンブル学習器」とは、「単純モデル(弱学習器)」を多数組み合わせて使うことで、精度(汎化性能)を改善する手法
- ひとつの「単純モデル(弱学習器)」では「過学習」になりやすいものの、アンサンブル学習器にすることで、「過学習を抑制する効果」が期待できる
バギング | ・異なる弱学習器を、並列学習させ、すべての結果を統合する ・それぞれの弱学習器の偏りを相殺し、バリアンスを抑えることができる ・「ランダムフォレスト」 |
---|---|
ブースティング | ・多数の弱学習器を1つずつ逐次的に構築していき、その前に構築された弱学習器の結果を利用する ・「勾配ブースティング回帰木」 |
ランダムフォレスト
- 「ランダムフォレスト(Random Forest)」→1本の木が多数集まって”森”になっている構造
※最強のアンサンブルモデルといわれている - 訓練データから一部分を抽出し、少しずつ異なる決定木を多数構築し、それぞれの結果の多数決を採用する
- 行(データ):重複を許す抽出である「ブートストラップ法」を用いる
- 列(特徴量):√個の特徴量を抽出し、多数の決定木の結果を集約したものを出力する
→回帰問題であれば予測値の平均値、分類問題であれば多数決を採用する - すべての木の結果の多数決や平均を取るため、過学習が打ち消される
- 「並列処理」ができ、計算を高速にできる
- 特徴量の重要度が可視化できるため、出力結果を説明しやすい
勾配ブースティング回帰木
- ブースティング形式のアンサンブル学習→「直列」で弱学習器を構築する
- 「勾配ブースティング回帰木」→弱学習器を1つずつ順番に構築していき、新しい弱学習器の構築には、その前の弱学習器の学習結果を利用する手法
→最終的にすべての結果の重み付き多数決を採用する - 1つの弱学習器を作成
→最初の弱学習器で誤認識したデータに重みを増加(反省)させ、次ではその部分を重点的に学習
→繰り返しつつモデルを構築していく - 特徴量設計とモデル調整が適切に行われた場合、高い精度が期待できる
- 学習には時間がかかり、初心者には扱いにくい
- XGBoost、AdaBoost、LightGBMなど
- コンペにおいては、多種多様な特徴量を扱う柔軟性がある決定木系モデルが好まれる