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

適用対象: SQL Server 2019 以前の Analysis Services Azure Analysis Services Fabric/Power BI Premium

Important

データ マイニングは SQL Server 2017 Analysis Services で非推奨となり、現在は SQL Server 2022 Analysis Services で廃止されました。 非推奨および廃止された機能については、ドキュメントは更新されません。 詳細については、「 Analysis Services の下位互換性」を参照してください。

Microsoftデシジョン ツリー アルゴリズムは、不連続属性と連続属性の両方の予測モデリングに使用する分類および回帰アルゴリズムです。

不連続属性の場合、アルゴリズムはデータセット内の入力列間のリレーションシップに基づいて予測を行います。 アルゴリズムでは、これらの列の値または 状態 を使用して、予測可能として指定した列の状態を予測します。 具体的には、アルゴリズムは、予測可能な列と関連付けられた入力列を識別します。

たとえば、自転車を購入する可能性が高い顧客を予測するシナリオでは、10 人中 9 人の若い顧客のうち 9 人が年上の顧客のうち 2 人しか自転車を購入しなかった場合、アルゴリズムは、年齢が自転車購入の良い予測因子であると推測します。 デシジョン ツリーは、特定の結果に対するこの傾向に基づいて予測を行います。

連続属性の場合、アルゴリズムは線形回帰を使用してデシジョン ツリーが分割される場所を決定します。

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

Example

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

アルゴリズムのしくみ

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

Microsoftデシジョン ツリー アルゴリズムでは、特徴選択を使用して、最も有用な属性の選択をガイドします。 すべてのSQL Serverデータ マイニング アルゴリズムでは、特徴選択を使用してパフォーマンスと分析の品質が向上し、重要でない属性でプロセッサ時間が使用されないようにします。 データ マイニング モデルを設計するときに入力属性または予測可能な属性が多すぎる場合、モデルの処理やメモリ不足に時間がかかる場合があります。 ツリーを分割するかどうかを決定するために使用されるメソッドには、 エントロピベイジアン ネットワークの業界標準のメトリックが含まれます。 意味のある属性を選択し、属性のスコア付けとランク付けに使用するメソッドの詳細については、「 特徴選択 (データ マイニング)」を参照してください。

データ マイニング モデルの一般的な問題は、トレーニング データの小さな違いに対してモデルの機密性が高くなりすぎることです。これは、 オーバーフィット または オーバートレーニングと呼ばれます。 オーバーフィット モデルを他のデータ セットに一般化することはできません。 特定のデータ セットのオーバーフィットを回避するために、Microsoft デシジョン ツリー アルゴリズムでは、ツリーの成長を制御するための手法が使用されます。 Microsoft Decision Trees アルゴリズムの動作の詳細な説明については、Microsoft Decision Trees アルゴリズム テクニカル リファレンスを参照してください。

不連続列の予測

Microsoftデシジョン ツリー アルゴリズムは、ヒストグラムを使用して、個別の予測可能な列のツリーを構築します。 次の図は、入力列 Age に対して予測可能な列 Bike Buyers をプロットするヒストグラムを示しています。 ヒストグラムは、人の年齢がその人が自転車を購入しているかどうかを区別するのに役立っていることを示しています。

Microsoft デシジョン ツリー アルゴリズムのヒストグラムのスクリーンショット。

図に示されている相関関係により、Microsoftデシジョン ツリー アルゴリズムによって、モデルに新しいノードが作成されます。

デシジョン ツリー ノードのスクリーンショット。

アルゴリズムによってモデルに新しいノードが追加されると、ツリー構造が作成されます。 ツリーの最上位ノードは、顧客母集団全体の予測対象列の内訳を表します。 モデルが拡大し続けるにつれて、アルゴリズムはすべての列を考慮します。

連続列の予測

Microsoftデシジョン ツリー アルゴリズムが、連続予測可能列に基づいてツリーを構築すると、各ノードには回帰式が含まれます。 分割は、回帰式の非線形性の点で発生します。 たとえば、次の図を考えてみましょう。

非線形性を示す複数の回帰直線のスクリーンショット。

標準回帰モデルは、データ全体の傾向とリレーションシップを表す単一の数式の派生を試みます。 ただし、単一の数式では、複雑なデータの不連続性をキャプチャする作業が不適切になる可能性があります。 代わりに、Microsoftデシジョン ツリー アルゴリズムは、大部分が線形であるツリーのセグメントを検索し、これらのセグメントに対して個別の数式を作成します。 データを異なるセグメントに分割することで、モデルはデータを近似するより優れたジョブを実行できます。

次の図は、前の散布図のモデルのツリー図を表しています。 結果を予測するために、モデルには 2 つの異なる数式が用意されています。1 つは数式 y = .5x x 5 の左分岐用、1 つは数式 y = .25x + 8.75 の右分岐です。 散布図で 2 つの線が一緒になる点は、デシジョン ツリー モデルのノードが分割される非線形性のポイントです。

非線形性の点を表す数式のスクリーンショット。

このモデルは 2 つの線形方程式のみで単純であるため、ツリー内の分割は [すべて ] ノードの直後になります。 ただし、分割はツリーの任意のレベルで行うことができます。 各ノードが異なる属性のコレクションによって特徴付けされる複数のレベルとノードを含むツリーでは、数式が複数のノード間で共有されるか、1 つのノードにのみ適用される場合があります。

たとえば、"特定の年齢と収入を超える顧客" として定義されたノードと、"長距離通勤のお客様" を表すノードで 1 つの数式を取得できます。個々のノードまたはセグメントの数式を表示するには、ノードを選択します。

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

デシジョン ツリー モデルで使用するデータを準備するときは、必要なデータの量やデータの使用方法など、特定のアルゴリズムの要件を理解します。

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

  • 単一のキー列。 各モデルには、各レコードを一意に識別する数値列またはテキスト列が 1 つ含まれている必要があります。 複合キーは許可されません。

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

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

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

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

モデルを探索するには、Microsoft ツリー ビューアーを使用します。 モデルで複数のツリーが生成される場合は、ツリーを選択して、予測可能な属性ごとにケースがどのように分類されているかの内訳を確認できます。 依存関係ネットワーク ビューアーを使用して、ツリーの相互作用を表示することもできます。 詳細については、「 Microsoft ツリー ビューアーを使用したモデルの参照」を参照してください。

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

予測の作成

モデルが処理されると、結果がパターンと統計のセットとして格納されます。 これらの結果を使用して、リレーションシップを探索したり、予測を行ったりします。

デシジョン ツリー モデルで使用するクエリの例については、「 デシジョン ツリー モデルクエリの例」を参照してください。

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

注釈

  • 予測モデル マークアップ言語 (PMML) を使用してマイニング モデルを作成することをサポートします。

  • ドリルスルーをサポートします。

  • OLAP マイニング モデルの使用とデータ マイニング ディメンションの作成をサポートします。

こちらも参照ください

データ マイニング アルゴリズム (Analysis Services - データ マイニング)
Microsoft デシジョン ツリー アルゴリズムテクニカル リファレンス
デシジョン ツリー モデルクエリの例
デシジョン ツリー モデル用のマイニング モデルのコンテンツ (Analysis Services - データ マイニング)