Microsoft デシジョン ツリー アルゴリズム
Microsoft デシジョン ツリー アルゴリズムは、不連続属性と連続属性の両方の予測モデリングで使用するために Microsoft SQL Server 2005 Analysis Services (SSAS) で提供されている分類および回帰アルゴリズムです。
不連続属性の場合、予測はデータセットの入力列間のリレーションシップに基づいて行われます。アルゴリズムでは、これらの列の値または状態を使用して、予測可能として指定した列の状態が予測されます。具体的には、予測可能列に相関している入力列が識別されます。たとえば、どのような顧客が自転車を購入する確率が高いかを予測するシナリオにおいて、若い顧客は 10 人のうち 9 人が自転車を購入するのに対し、中高年の顧客は 10 人のうち 2 人しか購入しない場合、アルゴリズムによって、年齢が自転車購入の適切な予測子であると推定されます。デシジョン ツリーでは、特定の結果に対するこの傾向に基づいて予測が行われます。
連続属性の場合、アルゴリズムでは線型回帰を使用して、デシジョン ツリーの分割ポイントが判断されます。
複数の列が予測可能に設定されている場合、または予測可能に設定されている入れ子になったテーブルが入力データに含まれている場合は、予測可能列ごとに個別のデシジョン ツリーが作成されます。
例
Adventure Works Cycle 社のマーケティング部では、過去の顧客が製品を将来購入する可能性があるかどうかを示す特性を識別する必要があります。AdventureWorks データベースには、過去の顧客に関する人口統計情報が格納されています。マーケティング部は、Microsoft デシジョン ツリー アルゴリズムを使用してこの情報を分析することで、特定の顧客が製品を購入するかどうかを予測するモデルを作成できます。この予測は、人口統計や過去の購入パターンなど、顧客に関する既知の列の状態に基づいて行います。
アルゴリズムの動作
Microsoft デシジョン ツリー アルゴリズムでは、ノードとも呼ばれる一連の分割をツリー内に作成することによって、データ マイニング モデルが作成されます。ノードは、入力列が予測可能列に密接に相関していることが認識されるたびに、アルゴリズムによってモデルに追加されます。アルゴリズムで分割が決定される方法は、連続列と不連続列のどちらを予測するかによって異なります。Microsoft のデシジョン ツリー アルゴリズムが不連続の予測可能列に対してどのように機能するかの詳細については、「Scalable Classification over SQL Databases (SQL データベースのスケーラブルな分類)」および「Learning Bayesian Networks: The Combination of Knowledge and Statistical Data (ベイジアン ネットワークの学習: 知識と統計データの組み合わせ)」を参照してください。Microsoft デシジョン ツリー アルゴリズムが、連続する予測可能列をどのように処理するかについては、「Autoregressive Tree Models for Time-Series Analysis (時系列分析の自動回帰的ツリー モデル)」の付録を参照してください。
不連続列の予測
不連続の予測可能列に対して Microsoft デシジョン ツリー アルゴリズムがツリーを作成する方法は、ヒストグラムで示すことができます。次の図は、予測可能列の "Bike Buyers" を入力列の "Age" と相関させてプロットしたヒストグラムを示しています。このヒストグラムは、ある顧客が自転車を購入するかどうかは、その人の年齢からある程度判断できることを示しています。
Microsoft デシジョン ツリー アルゴリズムでは、図のような相関関係に基づいてモデルに新しいノードを作成します。
アルゴリズムによって新しいノードがモデルに追加されるにつれて、ツリー構造が形成されていきます。ツリーの最上部ノードには、顧客グループ全体の予測可能列の内訳が記述されます。モデルが拡大する際、アルゴリズムではすべての列が考慮されます。
連続列の予測
Microsoft デシジョン ツリー アルゴリズムが連続する予測可能列に基づいてツリーを作成するとき、各ノードには回帰式が含まれます。分割は、回帰式内の非線形性のポイントで発生します。たとえば、次の図について検討します。
この図には、1 本の線または 2 本の接続された線を使用してモデル化できるデータが含まれています。ただし、1 本の線ではデータを的確に表すことができません。代わりに 2 本の線を使用すると、モデルはデータをさらに的確に表すことができます。2 本の線が交差するポイントは非線形性のポイントで、これはデシジョン ツリー モデルのノードが分割されるポイントになります。たとえば、前のグラフで非線形性のポイントに対応しているノードは、次の図で表すことができます。2 つの式は、2 本の線の回帰式を表します。
アルゴリズムの使用
デシジョン ツリー モデルには、キー列、入力列、および 1 つの予測可能列が必要です。
次の表のように、Microsoft デシジョン ツリー アルゴリズムでは、特定の入力列のコンテンツの種類、予測可能列のコンテンツの種類、およびモデリング フラグがサポートされています。
入力列のコンテンツの種類 |
Continuous、Cyclical、Discrete、Discretized、Key、Table、Ordered |
予測可能列のコンテンツの種類 |
Continuous、Cyclical、Discrete、Discretized、Table、Ordered |
モデリング フラグ |
MODEL_EXISTENCE_ONLY、NOT NULL、REGRESSOR |
すべての Microsoft アルゴリズムでは、共通の関数セットがサポートされています。ただし、Microsoft デシジョン ツリー アルゴリズムでは、次の表のような追加の関数がサポートされています。
すべての Microsoft アルゴリズムに共通の関数の一覧については、「データ マイニング アルゴリズム」を参照してください。これらの関数の使用方法については、「データ マイニング拡張機能 (DMX) 関数リファレンス」を参照してください。
Microsoft デシジョン ツリー アルゴリズムでは、Predictive Model Markup Language (PMML) を使用したマイニング モデルの作成がサポートされています。
Microsoft デシジョン ツリー アルゴリズムでは、結果として得られるマイニング モデルのパフォーマンスおよび精度に影響を与えるいくつかのパラメータがサポートされています。次の表では、各パラメータについて説明します。
パラメータ | 説明 |
---|---|
MAXIMUM_INPUT_ATTRIBUTES |
選択した機能を呼び出す前にアルゴリズムが処理できる入力属性の数を定義します。この値を 0 に設定すると、機能の選択がオフになります。 既定値は 255 です。 |
MAXIMUM_OUTPUT_ATTRIBUTES |
選択した機能を呼び出す前にアルゴリズムが処理できる出力属性の数を定義します。この値を 0 に設定すると、機能の選択がオフになります。 既定値は 255 です。 |
SCORE_METHOD |
分割スコアを計算するために使用する方法を決定します。使用可能なオプションは、エントロピ (1)、K2 事前分布を指定したベイズ定理 (2)、均一な事前分布を指定したベイズ ディリクレ等式 (BDE) (3) です。 既定値は 3 です。 |
SPLIT_METHOD |
ノードを分割するために使用する方法を決定します。使用可能なオプションは、バイナリ (1)、完全 (2)、または両方 (3) です。 既定値は 3 です。 |
MINIMUM_SUPPORT |
デシジョン ツリー内で分割を生成するために必要なリーフ ケースの最小数を決定します。 既定値は 10 です。 |
COMPLEXITY_PENALTY |
デシジョン ツリーの拡大を制御します。低い値では分割の数が増加し、高い値では分割の数が減少します。既定値は、次の一覧で説明するように、特定のモデルの属性数に基づいています。
|
FORCED_REGRESSOR |
アルゴリズムによって計算された列の重要度にかかわらず、指定した列をアルゴリズムでリグレッサとして使用するように設定します。このパラメータは、連続属性を予測するデシジョン ツリーでのみ使用します。 |
参照
概念
データ マイニング アルゴリズム
データ マイニング ウィザード
データ マイニングでの機能の選択
Microsoft ツリー ビューアを使用したマイニング モデルの表示