AI

決定木分析とは?分類木・回帰木の仕組みと過学習を防ぐ剪定・アンサンブルを実装目線で解説

インフラ構築AWSGCPAdureにおける主な内容

決定木分析は、データを「はい/いいえ」で答えられる条件で枝分かれさせ、木のような階層構造をたどって予測や分類を行う機械学習の手法です。年齢が30以上か、購入回数が5回以上か、といった問いを上から順に当てはめ、たどり着いた葉が予測結果になります。判断の道筋がそのまま図として残るため、なぜその予測になったのかを人が追える点が最大の持ち味です。本記事では、木構造による予測の流れ、分類木と回帰木の違い、ジニ不純度やエントロピーで分岐を選ぶ学習の仕組み、単一の木が抱える過学習という弱点と剪定・アンサンブルによる対策、そしてscikit-learnでの実装判断と特徴量重要度の読み方までを、実装する側の目線で整理します。

目次

まとめ:決定木分析の要点と実装で押さえる予測モデルの結論

決定木分析の核心は、データを不純度が下がる条件で繰り返し分割し、if-then形式の分岐ルールを積み上げて予測モデルを組み立てる点にあります。目的変数がカテゴリなら分類木、数値なら回帰木となり、同じ木構造で分類と回帰の両方を扱える点も特徴です。学習では、各分岐で「分けたあとのデータがどれだけ純粋になるか」をジニ不純度やエントロピーで測り、不純度の下がり幅が最も大きい条件を選んでいきます。特別なスケーリングや欠損の穴埋めをほとんど必要とせず、数値とカテゴリが混在したデータをそのまま扱える手軽さも実装上の利点です。

実装する側の結論を先に述べます。単一の決定木は解釈性に優れる一方、深く育てると訓練データの細部まで覚え込む過学習を起こしやすく、予測精度だけを見ればランダムフォレストや勾配ブースティングに及ばない場面が多くあります。そのため実務では、判断根拠を人へ説明したい場面では単一木を、精度を最優先したい場面では複数の木を束ねたアンサンブルを、という使い分けが基本です。scikit-learnを使えば数行で木を育てられますが、木の深さや葉の最小サンプル数といったハイパーパラメータを制御しなければ、簡単に過学習した木ができあがります。決定木を扱ううえで力を注ぐべきは、木を作ることではなく、汎化する木に育てる調整と、出力された分岐ルールの妥当性を検証する目にあると考えてください。

決定木分析とは何か、分類木と回帰木がそれぞれ扱う予測問題の違い

決定木分析は、条件による枝分かれを重ねて予測へたどり着く手法です。まずは木がどのような部品でできているのか、そして解きたい問題によって分類木と回帰木のどちらになるのかを押さえます。

ノード・枝・葉からなる木構造と、if-then分岐で予測に至る流れ

決定木は、その名のとおり木を逆さにした形の構造を持ちます。一番上の起点をルートノードと呼び、ここに全データが集まる形です。各ノードでは「この特徴量がある値以上か」といった一つの条件で二手に枝分かれし、データを二つのグループへ振り分けます。枝分かれの先にさらに条件を置くノードが続き、これ以上分けない終点が葉ノードです。予測したいデータは、ルートから条件を順に当てはめながら枝をたどり、行き着いた葉が持つ値を予測として受け取ります。この一連の流れは「もし年齢が30以上で、かつ購入回数が5回以上なら、このクラス」という入れ子のif-then文にそのまま置き換えられます。判断の過程が枝の並びとして目に見える形で残るため、モデルが結論に至った理由を後から人がたどれる。これがブラックボックスになりがちな他の手法と決定木を分ける、解釈性の高さの正体です。

予測したい目的変数がカテゴリか数値かで分かれる分類木と回帰木の違い

決定木は、予測したい対象である目的変数の種類によって二つに分かれます。目的変数が「購入する・しない」「優良・一般・離反」のようなカテゴリのときに使うのが分類木です。葉には振り分けられたデータの多数派クラスが割り当てられ、新しいデータはたどり着いた葉のクラスへ分類されます。一方、目的変数が売上金額や気温のような連続値のときに使うのが回帰木です。回帰木の葉には、そこへ集まった訓練データの目的変数の平均値が入り、それが予測値になります。両者は葉の値の決め方と、次に述べる分岐の良さを測る指標が違うだけで、条件で枝分かれさせる骨格は共通です。回帰という問題設定そのものを整理したい場合は、回帰分析の種類と実務での進め方を解説した記事もあわせて確認すると、線形回帰と回帰木の使いどころの違いが見えてきます。

決定木の仕組みと、不純度を下げるように分岐を選ぶ学習アルゴリズム

決定木の学習とは、どの特徴量のどの値で分けるかという分岐条件を、データから自動で決めていく処理にほかなりません。その良し悪しを測る物差しが不純度です。ここでは不純度の考え方と、それを使う主要なアルゴリズムを見ていきます。

ジニ不純度やエントロピー・情報利得で分岐の良さを測る基本の考え方

分岐の目的は、分けたあとの各グループをできるだけ「一つのクラスだけが集まった純粋な状態」に近づけることです。この純粋さの度合いを裏返しで表すのが不純度で、いろいろなクラスが混ざり合っているほど大きく、単一クラスに偏るほど小さくなります。分類木でよく使われる指標が、ジニ不純度とエントロピーの二つです。ジニ不純度は、そのグループから無作為に選んだ一件を、グループのクラス比率にしたがって当てずっぽうで分類したとき間違える確率にあたります。エントロピーは情報理論に由来し、クラスの散らばり具合を情報量の平均としてとらえる指標です。エントロピーそのものの意味や情報量の測り方を掘り下げたい場合は、エントロピーとは何かを情報理論から解説した記事もあわせて確認してください。学習では、分岐前の不純度と、分岐後の二グループの不純度の加重平均を比べ、その差である情報利得が最も大きくなる条件を全特徴量から探して採用します。これを各ノードで貪欲に繰り返すのが、決定木が枝を伸ばしていく基本動作です。ジニ不純度とエントロピーは実務上どちらを選んでも結果が大きく変わることは少なく、計算がやや軽いジニ不純度が既定になっているライブラリが多くあります。

回帰木の分散削減と、CART・ID3・C4.5という主要アルゴリズム

回帰木では目的変数が数値のため、クラスの純粋さという概念は使えません。代わりに、葉に集まったデータの目的変数のばらつき、つまり分散や二乗誤差を不純度とみなし、分岐によってこのばらつきが最も減る条件を選びます。散らばりの小さいグループへ分けるほど、葉の平均値が予測として当てにできるという考え方です。決定木を構築するアルゴリズムには系譜があり、代表的なものが三つあります。ID3は情報利得を使ってカテゴリ変数を多分岐する初期の手法、C4.5はその改良版で連続値の扱いや利得比による偏りの補正を加えたものです。そして現在scikit-learnをはじめ広く実装の土台になっているのがCART(Classification And Regression Trees)で、常に二分岐で木を育て、分類木ではジニ不純度、回帰木では二乗誤差を指標に用いる点が特徴になります。実装で目にする木の多くはこのCART系だと考えて差し支えありません。

決定木分析の弱点である過学習と、剪定・アンサンブルによる対策

決定木は仕組みが素直な半面、放っておくと訓練データに過剰に適合します。実装者がまずつまずくこの過学習と、それを抑える剪定、さらに複数の木を束ねるアンサンブルへの発展を整理します。

木が深くなりすぎて起きる過学習と、剪定(枝刈り)で汎化性能を保つ工夫

分岐を止めずに木を伸ばし続けると、決定木は最終的に訓練データの一件一件を言い当てる葉まで作り込めます。訓練データでの正解率は限りなく高くなりますが、そこには偶然のノイズまで分岐条件として覚え込んだ枝が含まれ、未知のデータではかえって外れます。これが過学習で、深すぎる木はこの状態に陥りがちです。対策の柱が剪定(枝刈り、pruning)です。剪定には二つの向きがあります。一つは、木を育てる段階で深さの上限や、葉に残す最小サンプル数、分岐に必要な最小サンプル数といった条件をあらかじめ課し、育ちすぎる前に止める事前剪定です。もう一つは、いったん大きく育てた木から、汎化にほとんど寄与しない枝を後からまとめて切り戻す事後剪定で、scikit-learnではコスト複雑度剪定(ccp_alpha)がこれにあたります。木の複雑さにペナルティを与え、精度を保ちつつ枝を削るという発想です。訓練データと検証データの正解率が大きく開くときは、まず木が深くなりすぎていないかを疑い、これらの手綱で複雑さを抑えてください。

ランダムフォレストと勾配ブースティングで単一の木の弱点を補う手法

単一の決定木は、訓練データがわずかに変わるだけで分岐の構造が大きく入れ替わる不安定さも抱えます。この弱点を、多数の木を束ねて補うのがアンサンブル学習です。代表がランダムフォレストと勾配ブースティングの二系統になります。ランダムフォレストは、訓練データを復元抽出で少しずつ変えた標本と、各分岐で使う特徴量をランダムに絞る工夫を組み合わせ、性質の異なる多数の木を並列に育て、その予測を多数決や平均で束ねる手法です。個々の木のばらつきを打ち消し合うことで、単一木より安定して高い精度が得られます。もう一方の勾配ブースティングは、木を一本ずつ順に足していき、前の木が外した分(残差)を次の木が埋めるように学習を積み重ねる手法です。XGBoostやLightGBMといった実装が知られ、表形式データの予測では高い精度を出す定番として広く使われています。いずれも土台は決定木であり、決定木の仕組みを理解しておくことが、これらの強力な手法を使いこなす前提になります。

企業が決定木分析を導入する際の採用判断とscikit-learn実装の勘所

ここからは技術解説から一歩進め、実装者が決定木分析とどう向き合うべきかを示します。要点は、単一木とアンサンブルの使い分けと、過学習を抑えるハイパーパラメータの制御の二つです。順に見ていきます。

決定木を単体で採用すべき場面と、精度優先で見送るべき場面の見極め

単一の決定木を採用する判断は、予測の根拠を人へ説明できることに価値がある場面で正解になります。与信の可否や解約の予兆といった、なぜその結論なのかを担当者や顧客へ示す必要がある業務では、分岐ルールがそのまま説明資料になる決定木の解釈性が効く場面です。特徴量のスケールをそろえる前処理がほぼ不要で、数値とカテゴリの混在データを短時間でモデル化できる手軽さも、初期の試作や仮説検証では強みになります。一方で、予測精度そのものを競う場面では、単一の決定木は見送るのが妥当です。前節のとおり単一木は過学習と不安定さを抱え、同じデータでもランダムフォレストや勾配ブースティングに精度で劣る例が多いためです。判断の透明性を保ちつつ精度も欲しい場合は、まず単一木で分岐の傾向とどの特徴量が効くかを把握し、本番の予測はアンサンブルに任せる、という二段構えが現実的な落としどころになります。分類木を業務へ載せる際は、正解率だけでなく取りこぼしと誤検知のバランスを見る必要があり、その評価には混同行列で適合率・再現率を確認する視点が役立ちます。

scikit-learnでの実装とハイパーパラメータ・特徴量重要度の読み方

実装では、scikit-learnのDecisionTreeClassifierとDecisionTreeRegressorが標準的な入口になります。学習データを与えて数行で木を育てられますが、既定のまま呼ぶと深さの上限がなく、過学習した木ができやすい点に注意が必要です。実務でまず触るハイパーパラメータは、木の深さの上限(max_depth)、葉に残す最小サンプル数(min_samples_leaf)、分岐に要する最小サンプル数(min_samples_split)、そして事後剪定の強さ(ccp_alpha)です。これらを交差検証で振りながら、訓練と検証のスコア差が開かない値を探すのが基本の進め方になります。学習後は、feature_importances_で各特徴量が不純度の削減にどれだけ寄与したかを見られ、どの変数が予測を左右しているかの手がかりになります。ただしこの重要度は、値の種類が多い特徴量を過大に見積もる癖があるため、数値をうのみにせず、業務の常識と突き合わせて解釈してください。自社の課題に合わせて決定木やアンサンブルを含む機械学習モデルを設計し、過学習の抑制から評価・運用までを任せたい場合は、機械学習・ディープラーニングの受託開発を手がける一創の機械学習モデル開発にご相談ください。手法選定とハイパーパラメータ調整の両面から、業務で使えるモデルづくりを支援します。

決定木分析の仕組み・実装と企業導入に関してよくある質問と回答

決定木分析でよく検索される疑問に、実装目線で簡潔に答えます。

決定木分析とは何をする手法ですか?

データを条件で枝分かれさせ、木構造をたどって予測や分類を行う機械学習の手法です。各分岐は「特徴量がある値以上か」という問いで、たどり着いた葉が予測結果になります。目的変数がカテゴリなら分類木、数値なら回帰木として、同じ骨格で分類と回帰の両方を扱えます。判断の道筋が枝として残るため、予測の根拠を人が追える点が持ち味です。

決定木とランダムフォレストの違いは何ですか?

決定木は一本の木で予測する手法で、ランダムフォレストはデータと特徴量を変えて育てた多数の決定木の予測を、多数決や平均で束ねる手法です。単一の決定木は解釈しやすい半面、過学習しやすく不安定です。ランダムフォレストは多数の木でばらつきを打ち消し、精度と安定性を高めます。土台は同じ決定木で、束ねるかどうかが違いになります。

ジニ不純度とエントロピーはどちらを使えばよいですか?

どちらもグループの純粋さを測る指標で、実務上の予測結果に大きな差は出にくいとされます。ジニ不純度は計算がやや軽く、多くのライブラリで既定になっています。エントロピーは情報理論に基づく指標です。まずは既定のジニ不純度で試し、精度に伸び悩みがあれば交差検証でエントロピーも比べる、という進め方で問題ありません。

決定木が過学習しているかはどう判断しますか?

訓練データでの正解率が高いのに、検証データでの正解率がそれより大きく低いときは、過学習を疑います。木が深くなりすぎて訓練データのノイズまで覚え込んだ状態です。木の深さの上限や葉の最小サンプル数を課す事前剪定、コスト複雑度剪定による事後剪定で木の複雑さを抑えると、両者のスコア差が縮まっていきます。

決定木分析はどんな場面で使うと効果的ですか?

予測の根拠を人へ説明する必要がある業務で効果を発揮します。与信判断や解約予測など、分岐ルールがそのまま説明材料になる場面が向いています。前処理が少なく試作が速い点も利点です。精度を最優先するなら、決定木で傾向をつかんだうえで、本番の予測はランダムフォレストや勾配ブースティングに任せる使い分けが現実的です。

関連記事

資料請求

RELATED POSTS 関連記事