決定木

決定木の概要

 決定木は、特定の特徴がよく現れるようなデータのかたまりを見つけ、その分類ルールを生成する機械学習の手法です。具体的には、目的変数と説明変数を設定し、目的変数の特徴的な領域が固まって存在するようなデータグループを見つけるため、複数の説明変数を使ってデータを分割しながらそのデータ内における目的変数の特徴の濃度を高め、そうして得られた説明変数とその閾値で構成されるデータの分岐ルールを生成します。
 下図のイメージ図では、●■▲の混在したデータに対して、変数X1が10というラインで分割すると●だけのデータグループと、■▲のデータグループに分割され、さらに■▲のデータグループは変数X2が7のラインで分割すると、■だけのデータグループと▲だけのデータグループに分割されます。このように説明変数を使ってデータを意味のある形に分割し、If-Thenのルールを生成していき、この分岐ルールをツリー構造で示したものが決定木となります。●■▲のように目的変数の水準に該当するデータの持つ特徴をクラス、ツリー構造において、それぞれのデータグループをノード、特に最初のデータ全体を指すノードをルートノード、分岐が止まった一番末端にあるノードをリーフノードとかターミナルノードといいます。またあるノードに対して、分岐前のノードを親ノード、分岐後のノードを子ノード、ツリーの枝となる分岐のラインをエッジといいます。


 

決定木のメリット

 決定木はデータ分類のクラスタリングや予測・判別のモデリング、要因関係の可視化など、様々な分析目的で適用できる万能ともいえる分析手法で多くのメリットがあります。
 例えば、特定の結果をもたらす要因、ルール、セグメントを見つけることができる、つまりデータの中から注目したい領域を見つけることができます。特に条件によって効果が発揮される要因が異なる場合でもその条件を抽出できます。
 またデータ分析ではよく層別の分析という属性に分けた分析をしますが、例えば全体で相関係数を求めて相関が低い場合でも、男性と女性に分けて相関係数をそれぞれ求めると高い相関が得られるというように、全体では見えなかった結果も、属性別に分析することで意味のある結果が得られることが多くあります。たいていそのような層別の分析では、仮説に基づいて分析の切り口を探していきますが、決定木ではその有力な切り口(説明変数と閾値)を自動で抽出することができます。これはビジネス場面ではとても有用なことが多く、例えば機械の故障予測や保守点検などでは、機械のどの指標がどれくらいの値を超えるとアラートを出すべきかといったルールを見つけることができます。
 他にも非線形のデータ処理のため線形関係のない現象でも特徴を抽出できること、とても多くの変数で構成される高次元なデータでも比較的高速に分析ができること、データを分割することによって特徴を顕在化させるため外れ値の影響が低いこと、分析過程や抽出ルールがツリー構造に可視化され視覚的に見やすいことなどのメリットがあります。
 データ分析には様々な分析手法がありますが、困ったらとりあえず決定木、と言ってもよいくらい決定木は万能な手法だと思います。そのため様々な適用シーンで活躍し、例えば来店頻度の高い優良顧客を過去の購買情報や顧客属性から分類したり、コンビニの駐車台数、売り場面積、店頭間口などから好調店と不振店を分類したり、天気や気温、湿度、風の強さからゴルフ場に客がどれくらい来るのか予測したり、がんの発症確率を患者の属性や検査値、生活習慣から予測するなど、多様な適用事例が存在します。

 

決定木の例

 例えば、ある商品について購入しようと思うか否かというアンケート調査のデータに決定木を適用した例を使って、決定木のアウトプットの理解をより深めていきたいと思います。
 今回は全体では10,000人を対象とした調査データで、この商品を購入しないと回答した人が5,000人、購入すると回答した人が5,000人いたとします。この購入意向が目的変数となり、0:購入しない、1:購入するという2つのクラスを持つ質的変数となります。説明変数には、アンケートの調査項目として、性別や年齢、職業、結婚しているかどうかという、量的変数と質的変数の両方があります。このデータ分析によってこの商品の購入意向の高い顧客層を特定し、マーケティング戦略を検討したいと考えます。
 決定木では、目的変数の特徴が色濃く出るように、つまり購入意向0と1のデータがどちらかに偏るように分岐がされていくわけですが、それがうまく分かれるような説明変数、つまり関連性の強い説明変数から分岐がされます。まず性別という説明変数で、男性のグループと女性のグループに分割されました。男性のグループは4,000人で、そのうち購入しないが2,500人、購入するが1,500人と、購入しないほうに偏ったグループとなります。一方、女性のグループは6,000人で、そのうち購入しないが2,500人、購入するが3,500人と購入するほうに偏ったグループとなります。
 決定木のツリー構造では、上位の階層にあるノードが必ず条件となります。男性のグループの下の分岐では、男性という条件下での分岐となります。この男性という条件下では、年齢という説明変数で、25歳というラインで分岐されています。男性の25歳以上では、購入しないが1,900人、購入するが600人と、まだ購入しないほうに偏っていますが、男性の25歳未満で見ますと、購入しないが600人、購入するが900人と、購入するほうに偏ったグループとなっています。さらに男性でかつ25歳以上という条件下での分岐を見ますと、結婚という説明変数で分岐がされ、男性かつ25歳以上かつ既婚者であると、購入しないが1,600人、購入するが200人と、だいぶ購入しない方に偏っているグループとなっていることが分かります。一方、男性かつ25歳以上かつ未婚者であると、購入しないが300人、購入するが400人と、サンプル数は少ないですが購入するほうに偏っているグループとなります。
 続いて、女性のグループの下の分岐について見てみます。女性全体で見ますと、購入する方が多いですが、これが職業という説明変数で分岐されると、女性の専業主婦は、購入しないが900人、購入するが600人と逆に購入しない方に偏っています。一方、女性の学生だと、購入しないが200人、購入するが800人と、購入する方にかなり偏っています。また女性の会社員では、購入しないが1,400人、購入するが2,100人と、購入するほうにやや偏っていますが、さらに年齢という説明変数で分岐されると、女性で会社員でかつ年齢が40歳以上では、購入しないが600人、購入するが400人と購入しない方に偏り、女性で会社員でかつ年齢が40歳未満では、購入しないが800人、購入するが1,700人と大きく購入するほうに偏っていることが分かります。
 この分析結果から購入意欲の強い顧客層とは、男性では25歳未満の方、あるいは25歳以上であっても未婚者である方、女性では学生や会社員、特に会社員では40歳未満の会社員で購入意欲が高いということが分かります。ここから例えば、こうした顧客層をターゲットにキャンペーンを打つなどのマーケティング戦略を検討することができます。

 決定木分析の大きな威力として挙げられるものは、例えば回帰分析などでは「年齢に効果がある(年齢と線形関係がある)」として分析されるますが、決定木では「年齢の中でも、25歳近辺と40歳近辺だけ他とは振る舞いが異なる」など、線形関係になくても効果が強く現れる特定の領域を見つけることができるということがとても大きな特徴だといえます。


 

決定木のアルゴリズム

 一言で決定木と言っても様々なアルゴリズムがあり、それぞれ条件や特徴が異なります。ここではよく使用される3つのアルゴリズムCART、CHAID、C5.0を紹介します。
 CARTは、分岐される数が必ず2つとなることが特徴です。必ず2つに分岐されるため、モデルの構造がシンプルとなり、結果を理解しやすいというメリットがありますが、データセットが多いと計算時間が長くなることがあります。分岐の指標にはジニ係数を使います。ジニ係数は経済学の分野で用いられる「不平等さ」を測る指標で、0から1の値をとり、0に近いほど平等となります。決定木において、Gini係数=0 は値の純粋さを意味し、Gini係数を1から0へ近づけていくように、つまりある1水準がかたまるように分類していきます。
 CHAIDは、CARTが2分岐だったのに対し、一度に複数の分岐ができます。説明変数は基本的には質的変数である必要がありますが、量的変数もカテゴリ化すれば使用することができ、分析ツールではこれを自動的に処理する機能もあります。多分岐の構造をもつため、各変数が複数のカテゴリを持っていたり、カテゴリ(範囲)ごとのルールについて把握したい場合などに有用だといえます。分岐の指標にはカイ2乗統計量を使います。これは統計的検定の一種で、その分岐の差異に統計的な意味があるか判定する指標となります。
 C5.0は、比較的最近の手法となり、CHAIDと同じく一度に複数の分岐ができます。なお目的変数は質的変数に限定されます。CHAIDのように多分岐の構造をとるため、各変数が複数のカテゴリを持っていたり、カテゴリ(範囲)ごとのルールについて把握したい場合などに有用だといえます。ただ、水準数の多い説明変数を好んで選択する傾向があり、モデルは複雑となる傾向があります。分岐の指標はエントロピーと呼ばれる、「事象の不確かさ」を示す指標を使います。エントロピーとは、何が起こるか予測できないとき最大で、発生確率の偏りが大きいほど小さくなります。決定木においては、エントロピーが低いほどノードの純度は高くなるので、この値が低くなるように分岐がされます。

 決定木はこうした特徴の異なるアルゴリズムによってアウトプットも異なります。そのため、どの手法を使えばよいのかという問いが多く発生します。その回答としては、どれが正解ということではなく、どれも正解であり、その選択に迷うときはそれぞれ実行してそれぞれの結果を確認し、設定したビジネス課題や適用業務との合致性を考慮して使用しやすい分析結果を選択するということで良いと思います。

 

要因関係把握の決定木と識別予測の決定木

 決定木は先述の通り、目的変数の特徴が色濃く現れるように、つまりその特徴にデータが偏るように説明変数を使ってデータを分割して、その分岐ルールをツリー構造で生成する機械学習の手法になります。アウトプットがツリー構造で可視化されるため、視覚的に目的変数と関係が強い要因を把握したり、その特徴が最も現れる条件ルールを把握することができます。一方、決定木はその条件ルールから目的変数の状態を予測する予測モデルとしても利用することができ、近年の人工知能ブームではその予測精度の追求で盛んにアルゴリズム開発の研究が行われています。
 決定木の予測精度を向上させる特にメジャーな方法として、バギングとブースティングがあります。バギング(ランダムフォレストなど)は、すべてのデータで1つの決定木を生成するのではなく、データや説明変数の一部を抜き出して決定木を生成し、これを学習に使用するデータや説明変数を何度も入れ替えて多数の決定木を生成し、最後に得られたすべての決定木の結果を統合することで、1回の学習に依存しないで全体の予測精度を向上させるというものです。ブースティング(アダブーストなど)は、すべてのデータあるいは一部のデータでまず決定木を生成し、その予測結果で間違って予測されたデータの重みを重くして決定木を更新することで、その間違ったデータをうまく予測できるようにしていきます。この調整を繰り返して複数の決定木を生成し、最後にやはりそれらの結果を組み合わせることで予測精度を向上させるというものです。厳密な技術的説明は割愛しますが、このように複数の決定木を生成してそれを組み合わせることで予測精度を向上させるといったアルゴリズムの開発がされています。
 確かにこうした取り組みによって決定木の予測精度は向上していきますが、一方でシンプルさが失われていきます。複数の決定木を組み合わせることで、どの説明変数のどの閾値でデータが分割され、どのような要因・条件が目的変数に影響を与えているのかツリー構造で可視化できなくなってしまいます。これはベイジアンネットワークの解説のなかで記載しました「識別問題のディープラーニングと現象理解のベイジアンネットワーク」に通じるところがあり、どちらの手法がよいということではなく、それぞれの特徴を理解したうえで使い分けることが求められます。つまりデータの中の要因関係を理解することよりも予測精度の高さを追及する場合はバギングやブースティングを適用することはとても有効ですし、業務担当者が施策を検討するヒントを得るために、ある特定の効果を発揮する要因や条件を可視化してそのデータに潜む特徴や要因関係を理解したい場合は、予測精度は劣るかもしれませんがシンプルに一つの決定木をアウトプットするのが良いかと思います。

決定木とベイジアンネットワーク

 決定木では、説明変数の分岐条件の下において目的変数の分布を計算していきますが、実は左右対称のツリー構造を持つ決定木と子ノードが一つのベイジアンネットワークは等価となります。例えば下図のように目的変数Yに対して説明変数がX1とX2の2つがあり、どの変数も0と1の2水準を持つ変数であるとしたとき、X1で分岐がされたそれぞれのノードに対してどちらもX2で分岐したときの決定木は、X1とX2の全組み合わせに対してYの確率分布を計算するターミナルノードができあがります。これはX1とX2を親ノード、Yを子ノードとしたベイジアンネットワークと等価になり、この場合のベイジアンネットワークの確率モデルP(Y|X1,X2)はX1とX2の全組み合わせに対してYの確率分布を計算したモデルとなります。

 

Copyright 2017 Analytics Design Lab Inc. All Rights Reserved.