12 デシジョン・ツリー
デシジョン・ツリー・アルゴリズムの使用方法を学習します。デシジョン・ツリーは、Oracle Data Miningでサポートされている分類アルゴリズムの1つです。
関連項目
12.1 デシジョン・ツリーとは
Naive Bayes同様、デシジョン・ツリー・アルゴリズムは条件付き確率に基づきます。ただし、デシジョン・ツリーでは、Naive Bayesとは異なり、ルールが生成されます。ルールは、ユーザーが理解でき、レコード・セットを識別するためにデータベース内で使用できる条件文です。
データ・マイニングの一部のアプリケーションでは、モデルの品質全体を評価する際に、ある結果または別の結果を予測する理由は、重要ではない場合があります。別の用途では、決定の理由を説明できることが不可欠となる場合があります。たとえば、マーケティングの専門家は、マーケティング・キャンペーンを成功させるために、顧客の各セグメントに関する説明をすべて必要とします。デシジョン・ツリー・アルゴリズムはこのような用途に適しています。
デシジョン・ツリー・ルールを使用してモデルを検証します。ルールが特定領域の専門家にとって意味がある場合、これによってモデルが検証されます。
12.1.1 デシジョン・ツリー・ルール
デシジョン・ツリー・ルールを説明します。
Oracle Data Miningでは、ルールを提供するアルゴリズムがいくつかサポートされています。デシジョン・ツリーの他にも、クラスタリング・アルゴリズムでは、クラスタのメンバーによって共有される条件を記述するルールが提供され、相関ルールでは、属性間の相関を記述するルールが提供されます。
ルールではモデルの透明性が提供され、モデルの内部機構について知ることができます。ルールは、モデルの予測の根拠を示します。Oracle Data Miningではモデルの透明性が高いレベルで確保されています。ルールが提供されるのは一部のアルゴリズムですが、モデルの詳細はすべてのアルゴリズムで提供されます。モデルの詳細を調べて、アルゴリズムによる属性の内部的な処理方法(変換や逆変換など)を決定できます。透明性については、データ準備の説明や『Oracle Data Miningユーザーズ・ガイド』内のモデル作成の説明を参照してください。
次の図に、デシジョン・ツリー・モデルによって生成されるルールを示します。このルールは、ポイント・カードが与えられている場合に顧客が消費を増やす確率を予測するデシジョン・ツリーから生成されています。ターゲット値の0は消費を増やす可能性がないことを、1は増やす可能性があることを意味しています。
図で示されているルールは、次の条件文を表しています。
IF (current residence > 3.5 and has college degree and is single) THEN predicted target value = 0
このルールは完全なルールです。サロゲート・ルールは適用時に使用できる関連属性で、分割に必要な属性がない場合に使用されます。
12.1.1.1 信頼度と支持度
信頼度と支持度はルールのプロパティです。これらの統計上の測度は、ルールおよび予測のランク付けに使用できます。
支持度: ルールを満たすトレーニング・データセット内のレコード数
信頼度: ルールが満たされている場合に、予測結果が発生する可能性
たとえば、1000人の顧客リスト(1000ケース)について考えます。すべての顧客のうち、100人が所与のルールを満たすものとします。これらの100人のうち、75人は消費を増やす可能性があり、25人は消費を増やす可能性がありません。このルールの支持度は、100/1000 (10%)です。ルールを満たすこれらのケースの予測の信頼度(消費を増やす可能性)は、75/100 (75%)となります。
12.1.2 デシジョン・ツリーの利点
デシジョン・ツリーの利点を学習します。
デシジョン・ツリー・アルゴリズムは、ユーザーによる操作をあまり必要とせずに、正確かつ解釈可能なモデルを作成できます。このアルゴリズムは、2項および多クラスのどちらの分類問題にも使用できます。
このアルゴリズムは、作成時と適用時の両方において高速です。デシジョン・ツリーの作成プロセスはパラレル実行をサポートします。(スコアリングはアルゴリズムに関係なくパラレル実行をサポートします。)
デシジョン・ツリーのスコアリングは特に高速です。モデル作成時に作成されるツリー構造は、一連(通常、2から7)の単純なテストに使用されます。各テストは、単一の予測子に基づきます。これは、値のリストにIN(含まれる)かNOT IN(含まれない)か(質的予測子)、または、一定の値に対してLESS THAN(未満)かEQUAL TO(等しい)か(量的予測子)のメンバーシップに関するテストです。
12.2 デシジョン・ツリーの拡大
デシジョン・ツリーを形成または増やす一連の質問によってターゲット値を予測します。
デシジョン・ツリーは、一連の質問を問うことによってターゲット値を予測します。各段階で問われる質問はそれぞれ、直前の質問に対する回答によって決まります。最終的に特定のターゲット値を一意に識別できるような質問を重ねていきます。図形的には、このプロセスがツリー構造を形成します。
図は、9個のノード(および対応する9個のルール)を持つデシジョン・ツリーです。ターゲット属性は2値で、顧客が消費を増やす場合は1、増やさない場合は0です。ツリーにおける最初の分岐は、CUST_MARITAL_STATUS
属性に基づきます。このツリーのルート(ノード0)はノード1とノード3に分岐します。既婚者はノード1に、独身者はノード3に属します。
ノード1には、次のルールが関連付けられています。
Node 1 recordCount=712,0 Count=382, 1 Count=330 CUST_MARITAL_STATUS isIN "Married",surrogate:HOUSEHOLD_SIZE isIn "3""4-5"
ノード1には712個のレコード(ケース)が含まれています。この712ケースのすべてにおいて、CUST_MARITAL_STATUS
属性は顧客が結婚していることを示しています。これらのケースのうち、消費を増やす可能性がないターゲット値0を382のケースがとり、消費を増やす可能性があるターゲット値1を330のケースがとります。
12.2.1 分岐
デシジョン・ツリー・アルゴリズムは、トレーニング・プロセスにおいて、ケース(レコード)のセットを2つの子ノードに分割する最も効率的な方法を繰り返し見つける必要があります。Oracle Data Miningでは、この分岐の計算用に2つの同種メトリック(giniおよびentropy)を使用できます。デフォルトのメトリックはジニです。
同種メトリックは、代替の分岐条件の質を評価し、最も同種の子ノードを生成する条件を選択します。同種は、純正とも呼ばれ、生成される子ノードが同じターゲット値を持つケースから構成されている度合いを指します。目標は、子ノードの純正度を最大限に高めることにあります。たとえば、ターゲットがyesまたはno(消費を増やす、または増やさない)のいずれかとなる場合、ほとんどのケースが消費を増やす、またはほとんどのケースが消費を増やさないノードを生成することが目標となります。
12.2.2 コスト・マトリックス
デシジョン・ツリーのコスト・マトリックスについて学習します。
デシジョン・ツリーを含むすべての分類アルゴリズムでは、適用時にコスト/利益マトリックスを使用できます。デシジョン・ツリー・モデルの作成およびスコアリングに同じコスト・マトリックスを使用したり、スコアリングに異なるコスト/利益マトリックスを指定したりすることが可能です。
関連項目
12.2.3 オーバーフィットの回避
原理上は、デシジョン・ツリー・アルゴリズムでは、トレーニング・サンプルを完全に分類するのに十分な深さまでツリーの各枝を増やすことができます。これは、場合によっては理にかなった方策ですが、実際には、データ内にノイズが存在する場合や、トレーニング・サンプルの数が少なすぎて真のターゲットの機能を代表するサンプルを生成できない場合に、扱いにくくなることがあります。どちらの場合でも、この単純なアルゴリズムでは、トレーニング・サンプルにオーバーフィットするツリーが生成される可能性があります。オーバーフィットとは、あるモデルで、そのモデルの作成に使用されたデータは正確に予測できるが、新たに提示されたデータに対しては満足に予測できない状態を指します。
オーバーフィットを回避するために、Oracle Data Miningでは自動のプルーニング(枝刈り)、およびツリーの拡大を制御する設定可能な制限条件をサポートしています。制限条件を使用すると、条件が満たされた場合に以降の分岐が回避されます。プルーニングによって、予測能力がほとんどない枝を取り除くことができます。
12.3 デシジョン・ツリー・アルゴリズムのチューニング
様々なパラメータを使用してデシジョン・ツリー・アルゴリズムを微調整します。
デシジョン・ツリー・アルゴリズムには、分岐および終了基準に対して妥当なデフォルト値が実装されています。ただし、微調整のために複数の構築設定を使用できます。
ツリーの最適な分岐条件を見つけるための同種メトリックを指定できます。デフォルトのメトリックはジニです。entropyメトリックも使用できます。
ツリーの拡大を制御する設定も使用できます。ツリーの最大深度、子ノードで必要とされるケースの最小数、追加の分岐を可能にするためにノードで必要とされるケースの最小数、子ノードのケースの最小数、および追加の分岐を可能にするためにノードで必要とされるケースの最小数を指定できます。
トレーニング・データ属性は、アルゴリズムのデータ準備の一部としてビニングされます。ビニング・ステップで使用するビンの数を変更できます。使用されるビンの数と作成に必要な時間との間にはトレードオフがあります。