決定木・ランダムフォレスト けっていき・らんだむふぉれすと
決定木ランダムフォレストアンサンブル学習特徴重要度解釈可能性勾配ブースティング
決定木・ランダムフォレストについて教えて
決定木・ランダムフォレストとは
決定木(Decision Tree)は、データを特徴量の条件(例:「年齢 ≥ 30?」「購入履歴あり?」)で繰り返し分割し、木構造で分類・予測を行うアルゴリズムです。フローチャートに似た直感的な構造を持ち、結果の解釈がしやすいのが最大の特徴です。
しかし1本の決定木は過学習しやすく、データが少し変わると大きく結果が変わる「不安定さ」があります。この問題を解決するのがランダムフォレスト(Random Forest)です。ランダムフォレストは「①データをランダムにサンプリング」「②特徴量のランダムなサブセットを使う」という2段階のランダム化で多数の異なる決定木を作り、多数決(分類)または平均(回帰)で最終予測を出します。
この手法はアンサンブル学習の一種で、多様な弱いモデルを組み合わせることで単体より強力なモデルを作ります。テーブルデータ(構造化データ)では、ディープラーニングにも引けを取らない精度を出すことが多く、業務系AIでは非常によく使われます。
決定木とランダムフォレストの比較
| 項目 | 決定木 | ランダムフォレスト |
|---|---|---|
| 解釈しやすさ | 非常に高い(図で説明可能) | 中程度(特徴重要度で確認) |
| 精度 | 中程度(過学習しやすい) | 高い(アンサンブルで安定) |
| 速度 | 速い | やや遅い(木の数×決定木) |
| 過学習への強さ | 弱い | 強い |
| 特徴重要度の出力 | 可 | 可(より信頼性が高い) |
| 欠損値への対応 | アルゴリズム次第 | 比較的ロバスト |
アンサンブル学習の種類
| 手法 | 仕組み | 代表例 |
|---|---|---|
| バギング(Bagging) | データのサンプリングを変えて複数モデルを並列学習し多数決 | ランダムフォレスト |
| ブースティング | 前のモデルの誤りを次のモデルが重点的に学ぶ直列学習 | XGBoost・LightGBM・CatBoost |
| スタッキング | 複数モデルの予測結果をメタモデルで統合 | Kaggleでよく使われる手法 |
歴史と背景
- 1963年:AIDアルゴリズムとして決定木の原型が登場
- 1984年:Breiman らがCART(Classification And Regression Trees)を発表。決定木の数学的枠組みを確立
- 1986年:QuinlanがID3(情報利得ベースの決定木)を発表。後にC4.5・C5.0に発展
- 1995年:Ho が最初のランダムフォレストの原型(ランダム決定木の組み合わせ)を提案
- 2001年:Breiman がRandom Forestを正式に発表。Bagging+特徴量のランダムサブセットという現在の形を確立
- 2014年:XGBoost(Chen & Guestrin)が発表。勾配ブースティング決定木の実装として高精度・高速でKaggleで圧倒的人気に
- 2016〜17年:LightGBM(Microsoft)・CatBoost(Yandex)が登場し、さらなる高速化・精度改善が実現
- 現在:テーブルデータのMLコンペや業務システムでは、XGBoost・LightGBMが最も使われるアルゴリズムのひとつ
決定木の構造とランダムフォレスト
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| ISO/IEC 22989:2022 | AI概念・用語(機械学習アルゴリズムの定義を含む) |
| ISO/IEC 23053 | 機械学習を使ったAIシステムのフレームワーク |