AI・生成AIの用語一覧へ
このページの目次
AI・生成AI中級図解あり

決定木 (Decision Tree)とは?

読み方:decisiontree

最終更新:2026/08/18

3秒でわかる

はい・いいえの質問を枝分かれで重ねて予測する機械学習モデル。判断の根拠がそのまま図で読めるため、理由を説明したい場面で選ばれます。

30秒図解

決定木は購入回数5回未満と最終来店60日超の質問を重ね、条件に合う経路を離反と判定する
決定木は質問を順番にたどり、最後の葉で判定します。学習時にはジニ不純度などを使って、データをよく分ける質問を選びます。

もう少し詳しく

どういうものか

決定木は、データを条件で二つに分けることを繰り返して予測するモデルです。根から始めて「年齢は 30 未満か」「購入回数は 5 回以上か」といった質問で枝分かれし、たどり着いた葉に答えが入っています。分類に使えば分類木、数値の予測に使えば回帰木と呼びます。

分岐の条件は人が決めるのではなく、分けたあとの不純さが最も小さくなる列としきい値を総当たりで探して自動的に決まります。指標にはジニ不純度やエントロピーが使われます。

なぜ必要か

理由を言葉で説明できるからです。線形モデルの係数やニューラルネットの重みと違い、決定木は「購入回数が 5 回未満で、最終来店から 60 日超だから離反と判定した」と経路をそのまま読めます。審査や医療のように根拠の提示が求められる場面で重宝されます。

処理の軽さも利点です。数値の大小関係しか見ないので、標準化も対数変換も要りません。単位の違う列が混ざっていてもそのまま投入できます。

具体例

from sklearn.<a href="/glossary/tree" class="text-primary font-medium underline underline-offset-2 hover:text-primary-dark">tree</a> import DecisionTreeClassifier, export_text from sklearn.datasets import load_iris X, y = load_iris(return_X_y=True) model = DecisionTreeClassifier(max_depth=3, random_state=0) model.fit(X, y) print(export_text(model, feature_names=load_iris().feature_names)) print(model.predict([[5.1, 3.5, 1.4, 0.2]]))

export_text を通すと、学習した分岐条件が文字の木として出てきます。モデルが何を見ているかを最初に確かめる習慣が付くので、精度を測る前に一度出しておくと安全です。

つまずきやすいところ

深さを制限しないと、葉が一件ずつになるまで育って訓練データを丸暗記します。学習データでの正解率が 100 パーセントに近いのに新しいデータで大きく外すときは、たいてい過学習です。max_depth や min_samples_leaf で枝を止め、交差検証で確かめます。

もう一つ、決定木は分割の境界が軸に平行な段々になるため、斜めの境界を素直に表せません。データを少し入れ替えただけで木の形が大きく変わる不安定さもあり、実務では木を多数束ねるランダムフォレストや勾配ブースティングに置き換えることが多くなります。

覚え方

診断チャートをそのまま学習で作らせたもの、と考えると位置づけが掴めます。読める代わりに、一本だけでは脆いモデルです。

知識のつながり

サイドバーと同じ推奨ルート・関連語を、まとめて確認できます。

現在地決定木 (Decision Tree)AI

LEARN BY DOING

この用語を、教材で使ってみる

直接関連する編と、その編を含むコースです。用語だけで終わらず、ブラウザ上で実際に手を動かせます。

この用語を扱うコース

コース

データ分析入門 Python(pandas)

57レッスン
コース

はじめての生成AI

76レッスン
コース

生成AI資格対策(生成AIパスポート+G検定)

49レッスン
データ分析コースの全編を見る