Microsoft デシジョン ツリー アルゴリズム

Microsoft デシジョン ツリー アルゴリズムは、不連続属性と連続属性の両方の予測モデリングで使用するために Microsoft SQL Server Analysis Services で提供されている分類および回帰アルゴリズムです。

不連続属性の場合、予測はデータセットの入力列間のリレーションシップに基づいて行われます。アルゴリズムでは、これらの列の値 (状態) を使用して、予測可能として指定した列の状態が予測されます。具体的には、予測可能列に相関している入力列が識別されます。たとえば、どのような顧客が自転車を購入する確率が高いかを予測するシナリオにおいて、若い顧客は 10 人のうち 9 人が自転車を購入するのに対し、中高年の顧客は 10 人のうち 2 人しか購入しない場合、アルゴリズムによって、年齢が自転車購入の適切な予測子であると推定されます。デシジョン ツリーでは、特定の結果に対するこの傾向に基づいて予測が行われます。

連続属性の場合、アルゴリズムでは線型回帰を使用して、デシジョン ツリーの分割ポイントが判断されます。

複数の列が予測可能に設定されている場合、または予測可能に設定されている入れ子になったテーブルが入力データに含まれている場合は、予測可能列ごとに個別のデシジョン ツリーが作成されます。

Adventure Works Cycles 社のマーケティング部では、過去の顧客が製品を将来購入する可能性があるかどうかを示す特性を識別する必要があります。AdventureWorks2008R2 データベースには、過去の顧客に関する人口統計情報が格納されています。マーケティング部は、Microsoft デシジョン ツリー アルゴリズムを使用してこの情報を分析することで、特定の顧客が製品を購入するかどうかを予測するモデルを作成できます。この予測は、人口統計や過去の購入パターンなど、顧客に関する既知の列の状態に基づいて行います。

アルゴリズムの動作

Microsoft デシジョン ツリー アルゴリズムでは、一連の分割をツリー内に作成することによって、データ マイニング モデルが作成されます。これらの分割はノードとして表されます。ノードは、入力列が予測可能列に密接に相関していることが認識されるたびに、アルゴリズムによってモデルに追加されます。アルゴリズムで分割が決定される方法は、連続列と不連続列のどちらを予測するかによって異なります。

Microsoft デシジョン ツリー アルゴリズムの機能の選択を使用すると、最も役に立つ属性を選択できます。機能の選択は、すべての Analysis Services データ マイニング アルゴリズムにおいて、パフォーマンスと分析の質を高めるために使用されています。機能の選択は、重要でない属性によってプロセッサ時間が使用されるのを防ぐために重要です。データ マイニング モデルの設計時に入力属性または予測可能属性を多用しすぎると、モデルの処理に非常に時間がかかったり、メモリが不足する場合があります。ツリーを分割するかどうかの判断方法には、エントロピおよびベイジアン ネットワークに関する業界標準の基準があります。重要な属性の選択、スコア計算、および順位付けの方法の詳細については、「データ マイニングでの機能の選択」を参照してください。

データ マイニング モデルにおける一般的な問題として、トレーニング データ内のわずかな差異がモデルに過度に反映されることがあります。これは、オーバーフィットまたはオーバートレーニングと呼ばれます。オーバーフィット モデルは、他のデータセットに一般化することができません。特定のデータセットへのオーバーフィットを回避するため、Microsoft デシジョン ツリー アルゴリズムでは、ツリーの拡大を制御する手法が使用されます。Microsoft デシジョン ツリー アルゴリズムの動作の詳細については、「Microsoft デシジョン ツリー アルゴリズム テクニカル リファレンス」を参照してください。

不連続列の予測

不連続の予測可能列に対して Microsoft デシジョン ツリー アルゴリズムがツリーを作成する方法は、ヒストグラムで示すことができます。次の図は、予測可能列の "Bike Buyers" を入力列の "Age" と相関させてプロットしたヒストグラムを示しています。このヒストグラムは、ある顧客が自転車を購入するかどうかは、その人の年齢からある程度判断できることを示しています。

Microsoft デシジョン ツリー アルゴリズムによるヒストグラム

Microsoft デシジョン ツリー アルゴリズムでは、図のような相関関係に基づいてモデルに新しいノードを作成します。

デシジョン ツリー ノード

アルゴリズムによって新しいノードがモデルに追加されるにつれて、ツリー構造が形成されていきます。ツリーの最上部ノードには、顧客グループ全体の予測可能列の内訳が記述されます。モデルが拡大する際、アルゴリズムではすべての列が考慮されます。

連続列の予測

Microsoft デシジョン ツリー アルゴリズムが連続する予測可能列に基づいてツリーを作成するとき、各ノードには回帰式が含まれます。分割は、回帰式内の非線形性のポイントで発生します。たとえば、次の図について検討します。

非線形性を表す複数の回帰線

この図には、1 本の線または 2 本の接続された線を使用してモデル化できるデータが含まれています。ただし、1 本の線ではデータを的確に表すことができません。代わりに 2 本の線を使用すると、モデルはデータをさらに的確に表すことができます。2 本の線が交差するポイントは非線形性のポイントで、これはデシジョン ツリー モデルのノードが分割されるポイントになります。たとえば、前のグラフで非線形性のポイントに対応しているノードは、次の図で表すことができます。2 つの式は、2 本の線の回帰式を表します。

非線形性のポイントを表す式

デシジョン ツリー モデルに必要なデータ

デシジョン ツリー モデルで使用するデータを用意する際には、必要なデータ量やデータの使用方法など、このアルゴリズムにおける要件を把握しておいてください。

デシジョン ツリー モデルの要件は次のとおりです。

  • 1 つの key : それぞれのモデルには、各レコードを一意に識別する数値列またはテキスト列が 1 つ含まれている必要があります。複合キーは使用できません。

  • 予測可能列 : 少なくとも 1 つの予測可能列が必要です。1 つのモデルに対し、複数の予測可能属性を含めることができます。また、数値型と不連続型の予測可能属性を混在させることもできます。ただし、予測可能属性の数を増やすと、処理時間が長くなる可能性があります。

  • 入力列 : 不連続または連続の入力列が必要です。入力属性の数を増やすと、処理時間に影響します。

デシジョン ツリー モデルでサポートされるコンテンツの種類とデータ型の詳細については、「Microsoft デシジョン ツリー アルゴリズム テクニカル リファレンス」の「必要条件」を参照してください。

デシジョン ツリー モデルの表示

モデルを参照するには、Microsoft ツリー ビューアを使用します。モデルで複数のツリーが生成される場合、そのいずれかを選択すると、予測可能属性ごとのケースの分類がビューアに表示されます。また、依存関係ネットワーク ビューアを使用すると、複数ツリー間の相互関係を表示できます。詳細については、「Microsoft ツリー ビューアーを使用したマイニング モデルの表示」を参照してください。

ツリー内の特定の分岐 (ノード) の詳細を調べる場合は、Microsoft 汎用コンテンツ ツリー ビューアでモデルを参照することもできます。モデルに保存される内容には、各ノードのすべての値の分布、ツリーの各レベルにおける確率、および連続属性用の回帰式が含まれます。詳細については、「デシジョン ツリー モデルのマイニング モデル コンテンツ (Analysis Services - データ マイニング)」を参照してください。

予測の作成

モデルの処理後、結果がパターンと統計のセットとして保存されます。これを使用して、関係を調査したり予測を実行したりできます。

デシジョン ツリー モデルで使用するクエリの例については、「デシジョン ツリー モデルのクエリ (Analysis Services - データ マイニング)」を参照してください。

マイニング モデルに対するクエリの作成方法に関する一般的な情報については、「データ マイニング モデルのクエリ (Analysis Services - データ マイニング)」を参照してください。

解説

  • Predictive Model Markup Language (PMML) を使用したマイニング モデルの作成がサポートされています。

  • ドリルスルーがサポートされています。

  • OLAP マイニング モデルの使用およびデータ マイニング ディメンションの作成がサポートされています。