Microsoft デシジョン ツリー アルゴリズムは、ツリーを作成するためのさまざまな方法を組み込んだハイブリッド アルゴリズムであり、回帰、分類、関連付けを含む複数の分析タスクをサポートします。 Microsoft デシジョン ツリー アルゴリズムでは、不連続属性と連続属性の両方のモデリングがサポートされています。
このトピックでは、アルゴリズムの実装について説明し、さまざまなタスクのアルゴリズムの動作をカスタマイズする方法と、デシジョン ツリー モデルのクエリに関する追加情報へのリンクを示します。
デシジョン ツリー アルゴリズムの実装
Microsoft デシジョン ツリー アルゴリズムは、モデルのおおよその事後分布を取得することで、因果関係モデルを学習するためにベイジアン アプローチを適用します。 このアプローチの詳細については、構造 とパラメーター学習による Microsoft Research サイトの論文を参照してください。
学習に必要な 前者 の情報価値を評価するための方法論は、 尤度等価性の仮定に基づいています。 この前提は、データが、条件付き非依存の同じアサーションを表すネットワーク構造を判別するのに役立つべきではないことを示しています。 各ケースは、1 つのベイジアンの前のネットワークと、そのネットワークに対する信頼度の単一の尺度を持つものと見なされます。
これらの以前のネットワークを使用して、アルゴリズムは、現在のトレーニング データを指定してネットワーク構造の相対的 な事後 確率を計算し、後確率が最も高いネットワーク構造を識別します。
Microsoft デシジョン ツリー アルゴリズムでは、さまざまな方法を使用して最適なツリーを計算します。 使用される方法は、線形回帰、分類、または関連付け分析のタスクによって異なります。 1 つのモデルに、さまざまな予測可能な属性に対して複数のツリーを含めることができます。 さらに、各ツリーには、データ内の属性と値の数に応じて、複数の分岐を含めることができます。 特定のモデルに組み込まれているツリーの形状と深さは、スコア付け方法と使用されたその他のパラメーターによって異なります。 パラメーターの変更は、ノードが分割される場所にも影響を与える可能性があります。
ツリーの構築
Microsoft Decision Trees アルゴリズムは、一連の入力値を作成すると、 特徴選択 を実行して、最も情報を提供する属性と値を識別し、非常にまれな値を考慮から除外します。 アルゴリズムでは、値を ビンにグループ化して、パフォーマンスを最適化するための単位として処理できる値のグループを作成します。
ツリーは、入力と対象となる結果の間の相関関係を決定することによって構築されます。 すべての属性が関連付けられた後、アルゴリズムは結果を最もきれいに分離する単一の属性を識別します。 最適な分離のこの点は、情報ゲインを計算する式を使用して測定されます。 情報ゲインに最適なスコアを持つ属性は、ケースをサブセットに分割するために使用され、ツリーを分割できなくなるまで、同じプロセスによって再帰的に分析されます。
情報ゲインの評価に使用される正確な式は、アルゴリズムの作成時に設定されたパラメーター、予測可能列のデータ型、および入力のデータ型によって異なります。
離散的入力と連続入力
予測可能な属性が不連続で、入力が不連続である場合、入力ごとの結果をカウントすることは、マトリックスを作成し、マトリックス内の各セルのスコアを生成することです。
ただし、予測可能な属性が不連続で、入力が連続している場合、連続列の入力は自動的に分離されます。 既定値をそのまま使用し、Analysis Services で最適なビン数を見つけるか、 DiscretizationMethod プロパティと DiscretizationBucketCount プロパティを設定して連続入力を分離する方法を制御できます。 詳細については、「 マイニング モデルの列の分離を変更する」を参照してください。
連続属性の場合、アルゴリズムは線形回帰を使用してデシジョン ツリーが分割される場所を決定します。
予測可能な属性が連続する数値データ型の場合は、出力にも特徴選択が適用され、結果の数を減らし、モデルをより迅速に構築できます。 機能選択のしきい値を変更し、MAXIMUM_OUTPUT_ATTRIBUTES パラメーターを設定することで、使用可能な値の数を増減できます。
Microsoft デシジョン ツリー アルゴリズムが個別の予測可能列でどのように機能するかについて詳しくは、「 学習ベイジアン ネットワーク: 知識と統計データの組み合わせ」をご覧ください。 Microsoft デシジョン ツリー アルゴリズムが連続予測可能列でどのように機能するかの詳細については、 Time-Series 分析のための自動回帰ツリー モデルの付録を参照してください。
スコア付け方法と特徴の選択
Microsoft デシジョン ツリー アルゴリズムでは、スコア付け情報を得るための 3 つの数式が提供されます。シャノンのエントロピ、K2 以前のベイジアン ネットワーク、および前者の均一な Dirichlet 分布を持つベイジアン ネットワークです。 3 つのメソッドはすべて、データ マイニング フィールドで十分に確立されています。 最適な結果を得るには、さまざまなパラメーターとスコアリング方法を試して判断することをお勧めします。 これらのスコア付け方法の詳細については、「機能の 選択」を参照してください。
すべての Analysis Services データ マイニング アルゴリズムは、特徴選択を自動的に使用して分析を改善し、処理負荷を軽減します。 特徴選択に使用される方法は、モデルの構築に使用されるアルゴリズムによって異なります。 デシジョン ツリー モデルの特徴選択を制御するアルゴリズム パラメーターには、MAXIMUM_INPUT_ATTRIBUTESとMAXIMUM_OUTPUTがあります。
| アルゴリズム | 分析方法 | コメント |
|---|---|---|
| デシジョン ツリー | 興味深さのスコア シャノンのエントロピー ベイジアンと K2 Prior ベイズディリクレ分布(一様な事前分布、デフォルト) |
いずれかの列にバイナリ以外の連続値が含まれている場合は、整合性を確保するために、すべての列に興味深さのスコアが使用されます。 それ以外の場合は、既定または指定されたメソッドが使用されます。 |
| 線形回帰 | 興味深さのスコア | 線形回帰では、連続列のみがサポートされるため、興味深さのみが使用されます。 |
スケーラビリティとパフォーマンス
分類は重要なデータ マイニング戦略です。 一般に、ケースを分類するために必要な情報の量は、入力レコードの数に直接比例して増加します。 これにより、分類できるデータのサイズが制限されます。 Microsoft Decision Trees アルゴリズムでは、次の方法を使用してこれらの問題を解決し、パフォーマンスを向上させ、メモリ制限を排除します。
属性の選択を最適化する機能の選択。
ツリーの成長を制御するベイジアン スコアリング。
連続属性のビン分割の最適化。
最も重要な値を決定するための入力値の動的なグループ化。
Microsoft Decision Trees アルゴリズムは高速でスケーラブルであり、簡単に並列化できるように設計されています。つまり、すべてのプロセッサが連携して 1 つの一貫性のあるモデルを構築します。 これらの特性を組み合わせることで、デシジョン ツリー分類子はデータ マイニングに最適なツールになります。
パフォーマンスの制約が厳しい場合は、次の方法を使用して、デシジョン ツリー モデルのトレーニング中の処理時間を短縮できる可能性があります。 ただし、これを行う場合は、処理パフォーマンスを向上させるために属性を削除するとモデルの結果が変わり、母集団全体の代表が少なくなる可能性があることに注意してください。
ツリーの増加を制限するには、COMPLEXITY_PENALTY パラメーターの値を大きくします。
アソシエーション モデル内の項目の数を制限して、構築されるツリーの数を制限します。
オーバーフィットを回避するには、MINIMUM_SUPPORT パラメーターの値を大きくします。
任意の属性の不連続値の数を 10 以下に制限します。 さまざまなモデルでさまざまな方法で値をグループ化してみてください。
注
SQL Server 2014 Integration Services (SSIS) で使用できるデータ探索ツールを使用して、データ内の値の分布を視覚化し、データ マイニングを開始する前に値を適切にグループ化できます。 詳細については、「 データ プロファイル タスクとビューアー」を参照してください。 また、 Excel 2007 用データ マイニング アドインを使用して、Microsoft Excel でデータを探索、グループ化、およびラベル付けし直すこともできます。
デシジョン ツリー アルゴリズムのカスタマイズ
Microsoft デシジョン ツリー アルゴリズムは、結果として得られるマイニング モデルのパフォーマンスと精度に影響を与えるパラメーターをサポートします。 マイニング モデル列またはマイニング構造列にモデリング フラグを設定して、データの処理方法を制御することもできます。
注
Microsoft Decision Trees アルゴリズムは、SQL Server のすべてのエディションで使用できます。ただし、Microsoft デシジョン ツリー アルゴリズムの動作をカスタマイズするための高度なパラメーターは、SQL Server の特定のエディションでのみ使用できます。 SQL Server の各エディションでサポートされる機能の一覧については、「SQL Server 2012 の各エディションでサポートされる機能 (https://go.microsoft.com/fwlink/?linkid=232473)」を参照してください。
アルゴリズム パラメーターの設定
次の表では、Microsoft デシジョン ツリー アルゴリズムで使用できるパラメーターについて説明します。
複雑性ペナルティ
デシジョン ツリーの拡張を制御します。 値を小さくすると分割の数が増え、値が大きいほど分割の数が減ります。 既定値は、次の一覧で説明するように、特定のモデルの属性の数に基づいています。
1 から 9 の属性の場合、既定値は 0.5 です。
10 ~ 99 の属性の場合、既定値は 0.9 です。
100 個以上の属性の場合、既定値は 0.99 です。
FORCE_REGRESSOR
アルゴリズムによって計算される列の重要度に関係なく、指定した列をリグレッサーとして使用するようにアルゴリズムに強制します。 このパラメーターは、連続属性を予測するデシジョン ツリーにのみ使用されます。
注
このパラメーターを設定すると、アルゴリズムでリグレッサーとして属性を使用するように強制します。 ただし、最終的なモデルで属性が実際にリグレッサーとして使用されるかどうかは、分析の結果によって異なります。 モデルのコンテンツにクエリを実行することで、リグレッサーとして使用された列を確認できます。
[SQL Server の一部のエディションでのみ使用可能]
入力属性の最大値
アルゴリズムが機能選択を呼び出す前に処理できる入力属性の数を定義します。
既定値は 255 です。
機能の選択をオフにするには、この値を 0 に設定します。
[SQL Server の一部のエディションでのみ使用可能]
MAXIMUM_OUTPUT_ATTRIBUTES
アルゴリズムが機能選択を呼び出す前に処理できる出力属性の数を定義します。
既定値は 255 です。
機能の選択をオフにするには、この値を 0 に設定します。
[SQL Server の一部のエディションでのみ使用可能]
MINIMUM_SUPPORT
デシジョン ツリーで分割を生成するために必要なリーフ ケースの最小数を決定します。
既定値は 10 です。
データセットが非常に大きい場合は、オーバートレーニングを回避するために、この値を増やす必要があります。
SCORE_METHOD
分割スコアの計算に使用する方法を決定します。 次のオプションを使用できます。
| 身分証明書 | 名前 |
|---|---|
| 1 | エントロピー |
| 3 | ベイジアンと K2 Prior |
| 4 | ベイジアン・ディリクレ当量 (BDE) と一様事前分布 (既定) |
既定値は 4 または BDE です。
これらのスコア付け方法の説明については、「機能の 選択」を参照してください。
分割方法
ノードの分割に使用するメソッドを決定します。 次のオプションを使用できます。
| 身分証明書 | 名前 |
|---|---|
| 1 | バイナリ: 属性の実際の値の数に関係なく、ツリーを 2 つの分岐に分割する必要があることを示します。 |
| 2 | 完成: ツリーが属性値と同数の分割を作成できることを示します。 |
| 3 | 両方とも: Analysis Services で、最適な結果を生成するためにバイナリ分割と完全分割のどちらを使用するかを決定できることを指定します。 |
デフォルトは3です。
モデルフラグ
Microsoft デシジョン ツリー アルゴリズムでは、次のモデリング フラグがサポートされています。 マイニング構造またはマイニング モデルを作成するときは、モデリング フラグを定義して、分析中に各列の値を処理する方法を指定します。 詳細については、「 モデリング フラグ (データ マイニング)」を参照してください。
| モデリング フラグ | 説明 |
|---|---|
| モデル存在のみ | つまり、列は、 Missing と Existingの 2 つの状態を持つものとして扱われます。 null は欠損値です。マイニング モデル列に適用されます。 |
| NOT NULL | 列に null を含めることができないことを示します。 モデルのトレーニング中に Analysis Services で null が検出された場合、エラーが発生します。 マイニング構造列に適用されます。 |
デシジョン ツリー モデルのリグレッサー
Microsoft 線形回帰アルゴリズムを使用しない場合でも、連続する数値入力と出力を持つデシジョン ツリー モデルには、連続属性の回帰を表すノードが含まれる可能性があります。
連続する数値データの列がリグレッサーを表していることを指定する必要はありません。 Microsoft Decision Trees アルゴリズムは、列に REGRESSOR フラグを設定しない場合でも、列を潜在的なリグレッサーとして自動的に使用し、データセットを意味のあるパターンを持つリージョンにパーティション分割します。
ただし、FORCE_REGRESSOR パラメーターを使用して、アルゴリズムが特定のリグレッサーを使用することを保証できます。 このパラメーターは、Microsoft デシジョン ツリーと Microsoft 線形回帰アルゴリズムでのみ使用できます。 モデリングフラグを設定すると、アルゴリズムは、ツリーのノードのパターンにフィットするように、a*C1 + b*C2 + ... の形式の回帰式を見つけようとします。 残差の合計が計算され、偏差が大きすぎる場合は、ツリー内で分割が強制されます。
たとえば、 Income を属性として使用して顧客の購入行動を予測し、列に REGRESSOR モデリング フラグを設定する場合、アルゴリズムは最初に標準の回帰式を使用して Income 値の適合を試みます。 偏差が大きすぎる場合、回帰式は破棄され、ツリーは別の属性に分割されます。 その後、デシジョン ツリー アルゴリズムは、分割後に各分岐の収入の回帰を調整しようとします。
要求事項
デシジョン ツリー モデルには、キー列、入力列、および予測可能な列が少なくとも 1 つ含まれている必要があります。
入力列と予測可能列
Microsoft デシジョン ツリー アルゴリズムでは、次の表に示す特定の入力列と予測可能な列がサポートされています。 マイニング モデルで使用する場合のコンテンツ タイプの意味の詳細については、「 コンテンツ タイプ (データ マイニング)」を参照してください。
| コラム | コンテンツの種類 |
|---|---|
| 入力属性 | 連続、循環、離散、離散化、キー、順序、テーブル |
| 予測可能な属性 | 連続的、循環的、離散的、離散化、順序付けられた、表 |
注
循環コンテンツ タイプと順序付けコンテンツ タイプはサポートされていますが、アルゴリズムでは個別の値として扱われ、特別な処理は実行されません。
こちらもご覧ください
Microsoft デシジョン ツリー アルゴリズム
デシジョン ツリー モデルクエリの例
デシジョン ツリー モデルのマイニング モデル コンテンツ (Analysis Services - データ マイニング)