決定木分析とは
決定木分析(Decision Tree)とは、ツリー構造(樹形図)によって想定しうる選択を全て行った場合の各結果を可視化することで、データを分析する機械学習の手法の一つです。決定木は結果の可視化以外にも、要因関係の可視化、データ分類のクラスタリングや予測・判別のモデリングなど、様々な分析目的で適用できる万能ともいえる分析手法であり、分類木と回帰木を総称して決定木といいます。名前の通り、分類木は対象を分類する問題を解き,回帰木は対象の数値を推定する問題を解きます。
決定木は通常、1つのノードから始まり、想定しうる結果へと分岐していきます。これらの結果はそれぞれ、他の可能性へと分岐する追加のノードへとつながります。結果として、木のような形が形成されます。アウトプットがツリー構造で可視化されるため、視覚的に目的変数と関係が強い要因を把握したり、その特徴が最も現れる条件ルールを把握することができます。複数の説明変数による条件でデータを分割していくことでそのデータ内における目的変数の特徴の濃度を高めていきます。そうして得られた説明変数の条件で構成されるデータの分岐ルールを生成する手法が決定木です。
現在では、マーケティングや意思決定など様々な分野で用いられています。具体的な活用シーンについては、次の章で例を挙げていきます。
決定木分析の活用シーン
決定木分析の代表的な活用シーンとしては、次のような場面が想定されます。
- 自社商品・サービスの購入見込みが最も高い人は、どのような人であるかを知りたい
- 満足度やロイヤリティの高い生活者には、どのような属性があるのかを知りたい
- 商品が持つ要素のうち、生活者の満足度やロイヤリティに最も影響しているものを知りたい
- テニスの未経験者層において、今後テニスを行う見込みが高い層にはどのような特徴があるのかを知りたい
前述したように、データ分析には様々な分析手法がありますが、様々な分析目的で適用できるため、決定木は万能な手法と言えます。そのため、適用できるケースも多岐に渡り、例えば来店頻度の高い優良顧客を過去の購買情報や顧客属性から分類したり、コンビニの駐車台数、売り場面積、店頭間口などから好調店と不振店を分類したり、天気や気温、湿度、風の強さからゴルフ場に客がどれくらい来るのか予測したり、がんの発症確率を患者の属性や検査値、生活習慣から予測するなど、多種多様な適用事例が存在します。中でもとりわけ、ビジネスにおける活用シーンが多いです。
決定木分析のメリット
- “目的変数”に最も影響すると考えられる“説明変数”を、何度もクロス集計を繰り返すことなく解析可能
経験則といった主観的な仮説に基づいて、ある程度の見当を付けたうえでクロス集計を作るような場面に出くわすことは多いと思われますが、このような場合に決定木分析を用いると、網羅的に疑似クロス集計を行うことができ、得られた樹形図によってあらゆるシチュエーション (条件分岐) での結果を知ることができるので、経験則に基づくクロス集計よりもはるかに、結果に対してより詳しい考察をすることができます。つまり、分析者の仮説に基づいて分析の切り口を探した場合は人間ならではの経験や感覚のバイアスがかかったものとなりがちですが、決定木では最も注目したい領域の有力な切り口を、客観的にかつ複数階層で探すことができます。これにより、どのような顧客をターゲット (ペルソナ) にすべきか、どのような施策が効果を発揮するのかという戦略を講じることができます。このことは、ビジネスシーンにおいてはとても有用なことが多いと考えられます。
- 結果が可視化されていて、理解しやすい
決定木は分析過程や抽出ルールがツリー構造に可視化されて見やすくホワイトボックスなモデルであるため、その結果を理解・解釈しやすいこともメリットの一つです。例えば社内で分析に対して門外漢である人に、分析の結果や効果を説明するという場面においても、他の分析手法と比べて説明がしやすく、第三者からの理解も得られやすい分析手法であると考えられます。
- 説明変数・目的変数共にカテゴリー (質的) データと数値 (量的) データ双方について使用できる
もちろん、扱うことが可能な質的データには、名義尺度も順序尺度も含まれますし、量的データには間隔尺度と比例尺度も含まれます。
- 外れ値に対してロバストな (外れ値の影響を受けにくい) モデルを構築可能
決定木では、データを分割することによって特徴を顕在化させるため、データの中に外れ値となるような異常に高い値や異常に低い値があったとしても、単にそうした外れ値を含むデータブロックとして分割されたり、外れ値のある領域だけが除外されるように分割されたりするので、外れ値の影響が少ない手法といえます。 - 具体的なデータの有無にかかわらず利用でき、データの準備が最小限で済む・必要な前処理が少ない
決定木分析では、「データを分割する指標」として特徴量を使うので、データの前処理(スケーリングや定性データの数値化等の加工)に伴う負担がかなり軽減されます。 - ターゲットに対して量的説明変数の効果的な階級に自動で区分される
決定木ではこうした量的変数について、ターゲット(目的変数)に対して最も効果的な切り方の閾値を自動で計算することができ、その閾値も各条件によって最適なものを見つけてくれます。これは業務にデータ分析を活用する上でかなり強力な機能といえます。例えば機械の稼働ログデータから機械の故障予測や保守点検などに決定木を活用することを考えた場合、機械のどのセンサーの値がどれくらいの値を超えると故障率が上昇するか、つまりアラートを出すべきセンサの閾値はいくつかといったルールを見つけることができます。
これらのメリット以外にも、以下のようなメリットも存在します。
- 既存の木(ツリー)に新しいオプションを追加できる・モデルの改良が容易
- いくつかの選択肢から最善のものが選べる
- 他の意思決定を補助する分析手法と組み合わせやすい
- 非線形のデータ処理が容易
- 教師あり学習をノンパラメトリックで可能
決定木分析のデメリット
その反面で、以下のような欠点もあります。
- 分類性能は低い
シンプルで分かりやすいモデルが得られる反面、SVM (サポートベクターマシン) やニューラルネットワークといった機械学習モデルと比較すると、やはり分類精度は劣ってしまいます。
- 過学習を起こしやすい
決定木分析はどうしても、モデル作成時に利用したデータに対して「過剰適合」してしまい、「汎化性能」も低くなりがちです。決定木分析において「汎化性能」を得るためには「剪定」をすることで木の深さを制限する必要があります。 「過剰適合」してしまい、木の深さがあまりにも深くなってしまった場合、結果の理解・解釈が難しくなってしまいます。その結果、決定木分析の最大のメリットと言っても過言ではない「可視化の容易性」という強みが失われてしまいます。
剪定をする際は、「木の深さ」、「終端ノード数」、「各ノードに含まれるデータ点数」、「誤り率」等の要素を考慮することが一般的です。 「木の深さ」、「終端ノード数」は大きくなりすぎないように、「各ノードに含まれるデータ点数」、「誤り率」は小さくなりすぎないようにすることが目的です。
- 線形性のあるデータにはあまり適していない
データに含まれる説明変数に線形関係が多く見られる場合は、素直に重回帰のような線形モデルを使う方がいいでしょう。
- ノード間の接続が AND に限定される、XORなど多変数を考慮した分類はできない
- 不確実性やリンクされた結果が多い場合の計算が複雑となる可能性がある
アンサンブル学習
アンサンブル学習は、弱学習器を多く使うことで精度を上げる手法のことをいいます。弱学習器自体は、決して精度が高くありません。しかしながら、それを多数集めると自然と精度が上がっていきます。つまり多数派の答えを採用すれば、正解を導き出せる可能性を高めることができます。
しかし結果が「〇」か「×」の二択のような選択肢ではない場合は、そのような学習方法は困難です。例えば、「1」や「7」といった数値が入力される場合は別の方法を考える必要があります。その場合は、平均値を最終予測値として採用します。
アンサンブル学習の種類
アンサンブル学習と一言にいっても、その手法にはいくつもの計算方法(アルゴリズム)が存在します。中でも代表的なのがバギングとブースティングです。これらは決定木の予測精度を向上させる特にメジャーな方法として、よく採用されています。
バギング
決定木分析におけるバギングは、ランダムフォレストとも呼ばれることがあります。すべてのデータで1つの決定木を生成するのではなく、データや説明変数の一部を抜き出して決定木を生成し、これを学習に使用するデータや説明変数を何度も入れ替えて多数の決定木を生成し、最後に得られたすべての決定木の結果を統合することで、1回の学習に依存しないで全体の予測精度を向上させるというものです。
バギングのアルゴリズムは以下のようになっています。
- 学習データの中から決められた回数分のデータを抽出し、このサンプルデータからそれぞれ「データセット」を作る
- データセットから弱学習器を作る
- 1~2を決められた回数分繰り返す
- 作成した弱学習器から結果を構築する
ブースティング
ブースティングはすべてのデータあるいは一部のデータでまず決定木を生成し、その予測結果で間違って予測されたデータの重みを重くして決定木を更新することで、その間違ったデータをうまく予測できるようにしていきます。この調整を繰り返して複数の決定木を生成し、最後にやはりそれらの結果を組み合わせることで予測精度を向上させるというものです。バギングは抽出したデータによって精度が下がってしまいますが、ブースティングは前のデータを再利用するので必然的に精度が上がります。しかしその反面、過学習が起きやすいことが弱点として挙げられます。
ブースティングのアルゴリズムは以下のようになっています。
- データの一部を決められた回数分抽出して弱学習器を作成する
- 学習器の誤った一つの結果と、正解のサンプルを比べる
- 誤り率と重要度を弱学習器ごとに計算する
- 計算毎に全体の重みを調節する (誤っているデータの重みを大きくする)
確かにこうしたアルゴリズムを用いることによって決定木の予測精度は向上していきますが、その一方でシンプルさが失われていきます。複数の決定木を組み合わせることで、どの説明変数のどの閾値でデータが分割され、どのような要因・条件が目的変数に影響を与えているのかツリー構造で可視化できなくなってしまいます。
つまり、データの中の要因関係を理解することよりも予測精度の高さを追及する場合はバギングやブースティングを適用することはとても有効ですし、ある特定の効果を発揮する要因や条件を可視化してそのデータに潜む特徴や要因関係を理解したい場合は、予測精度は劣るかもしれませんがシンプルに一つの決定木をアウトプットするのが良いかと思います。
決定木分析のアルゴリズム
- CART
CARTは、RやPython等での実装が容易なため、よく利用されるアルゴリズムです。各ノードから分岐される数が必ず2つとなることが特徴です。必ず2つに分岐されるため、モデルの構造がシンプルとなり、結果を理解しやすいというメリットがありますが、データセットが多いと計算時間が長くなることがあります。分岐の指標にはジニ係数を使います。ジニ係数は経済学の分野で用いられる「不平等さ」を測る指標で、0から1の値をとり、0に近いほど平等となります。決定木において、ジニ係数=0 は値の純粋さを意味し、ジニ係数を1から0へ近づけていくように、つまりある1水準がかたまるように分類していきます。分かりやすい例では、所得格差の大きい国は不平等なのでジニ係数は1に近いですが、高所得者の国と低所得者の国という2つの国に分けてしまえば、それぞれの国の中で見ると格差は小さくなり平等になるということになります。決定木でもこのように分岐していきます。なお、目的変数が量的変数の場合は、ノード内分散を分岐の指標に用いることがあります。 - CHAID
CHAIDは、CARTが2分岐だったのに対し、各ノードから一度に複数の分岐ができます。説明変数は基本的には質的変数である必要がありますが、量的変数もカテゴリ化すれば使用することができます。多分岐の構造をもつため、各変数が複数のカテゴリを持っていたり、カテゴリー(範囲)ごとのルールについて把握したい場合などに有用だといえます。分岐の指標にはχ二乗統計量を使います。これは統計的検定の一種で、その分岐の差異に統計的な意味があるか判定する指標となります。なお、目的変数が量的変数の場合は、同じく統計的検定の手法であるF検定を用いることがあります。
- C5.0(C4.5)
C5.0は比較的最近の手法ですが、とてもよく使われているアルゴリズムです。CHAIDと同じく、各ノードから一度に複数の分岐ができます。なお目的変数は質的変数に限定されます。CHAIDのように多分岐の構造をとるため、各変数が複数のカテゴリーを持っていたり、カテゴリー(範囲)ごとのルールについて把握したい場合などに有用だといえます。ただ、他の複数分岐が可能なアルゴリズムに比べ、カテゴリー数の多い説明変数を好んで選択する傾向があり、得られるモデルは複雑となる傾向があります。分岐の指標はエントロピーと呼ばれる「事象の不確かさ」を示す指標を用います。エントロピーとは、何が起こるか予測できないとき最大で、発生確率の偏りが大きいほど小さくなります。決定木においては、エントロピーが低いほどノードの純度は高くなるので、この値が低くなるように分岐がされます。
決定木はこうした特徴の異なるアルゴリズムによってアウトプットされる樹形図も異なってきます。そのため、「どのアルゴリズムを使えばよいのかという問い」が多くの場面で発生するかと思われますが、どれが「正解」ということではなく、どれも「正解」であり、その選択に迷うときは全て実行してそれぞれの結果を確認してから、課題との適合を考察して、本課題における最適な分析結果を選択するという手順で構いません。
コメントする