モデリング フラグ (データ マイニング)

SQL Server Analysis Services のモデリング フラグを使用すると、ケース テーブルで定義されているデータに関する追加情報をデータ マイニング アルゴリズムに提供できます。アルゴリズムは、この情報を使用してより正確なデータ マイニング モデルを作成できます。

モデリング フラグは、データ マイニング拡張機能 (DMX) を使用してプログラムで定義するか、Business Intelligence Development Studio のデータ マイニング デザイナーで定義することができます。DMX ステートメントでこれらのフラグを定義する方法の詳細については、「マイニング モデル列」を参照してください。

マイニング構造のレベルで定義されるモデリング フラグもあれば、マイニング モデル列のレベルで定義されるモデリング フラグもあります。たとえば、NOT NULL モデリング フラグはマイニング構造列で使用されます。マイニング モデル列でその他のモデリング フラグを定義できます。

次の一覧に、Analysis Services でサポートされているモデリング フラグを示します。特定のアルゴリズムでサポートされているモデリング フラグについては、各アルゴリズムのテクニカル リファレンス トピックを参照してください。

  • NOT NULL
    この属性列の値が NULL 値を含むことはないことを示します。モデルのトレーニング処理中に、Analysis Services がこの属性列に NULL 値を検出した場合、エラーが発生します。

  • MODEL_EXISTENCE_ONLY
    列が、Missing および Existing の 2 つの状態を持つ列として扱われることを示します。値が NULL の場合は Missing として扱われます。

    注意

    Missing はアルゴリズムによって使用される特殊な状態であり、列のテキスト値の "Missing" とは異なります。詳細については、「不足値 (Analysis Services - データ マイニング)」を参照してください。

    このモデリング フラグは、NULL 状態が暗黙的な意味を持ち、NOT NULL 状態の明示的な値はその列に値があるという事実ほど重要ではないような属性を示すために使用されるのが一般的です。たとえば [DateContractSigned] 列は、契約書が署名されなかった場合には NULL に、署名された場合には NOT NULL になります。したがって、契約書が署名されるかどうかの予測を目的とするモデルでは、MODEL_EXISTENCE_ONLY フラグを使用して、NOT NULL のケースの正確な日付の値は無視して、値が Missing のケースと Existing のケースの区別のみを行うことができます。

  • REGRESSOR
    列が処理中にリグレッサとして使用される候補であることを示します。このフラグは、マイニング モデル列で定義され、連続する数値データ型の列にのみ適用できます。このフラグの使用の詳細については、このトピックの後半のセクションを参照してください。

注意

サードパーティ プラグインには、Analysis Services であらかじめ定義されているフラグに加えて他のモデリング フラグがある場合もあります。

モデリング フラグの表示と変更

データ マイニング デザイナーでは、マイニング構造やマイニング列に関連付けられているモデリング フラグを、その構造またはモデルのプロパティを表示することによって表示および変更することができます。

構造列またはモデル列のモデリング フラグを表示または変更するには

  1. BI Development Studio のソリューション エクスプローラーで、マイニング構造をダブルクリックします。

  2. NOT NULL モデリング フラグを設定するには、[マイニング構造] タブをクリックします。

    REGRESSOR フラグまたは MODEL_EXISTENCE_ONLY フラグを設定するには、[マイニング モデル] タブをクリックします。

  3. 表示または変更する列を右クリックし、[プロパティ] をクリックします。

  4. 新しいモデリング フラグを追加するには、[ModelingFlags] プロパティの横にあるテキスト ボックスをクリックし、使用するモデリング フラグのチェック ボックスをオンにします。

    その列のデータ型に合ったモデリング フラグのみが表示されます。

    注意

    モデリング フラグを変更した後、モデルを再処理する必要があります。

DMX を使用して、既存のマイニング モデルやマイニング構造で使用されているモデリング フラグを変更することはできません。ALTER MINING STRUCTURE ADD MINING MODEL 構文を使用して新しいマイニング モデルを作成する必要があります。

現在の構造でどのモデリング フラグが使用されているのかわからない場合は、次の構文を使用して、モデリング フラグを返すクエリを作成できます。

SELECT COLUMN_NAME, MODELING_FLAG
FROM $system.DMSCHEMA_MINING_STRUCTURE_COLUMNS
WHERE STRUCTURE_NAME = '<structure name>'

REGRESSOR モデリング フラグの使用

列に REGRESSOR モデリング フラグを設定すると、その列にリグレッサ候補が含まれていることがアルゴリズムに対して示されます。モデルで使用される実際のリグレッサはアルゴリズムによって決定されます。予測可能な属性をモデル化しないリグレッサ候補は破棄できます。

データ マイニング ウィザードを使用してモデルを作成すると、連続列である入力列のすべてにリグレッサ候補のフラグが付けられます。したがって、REGRESSOR フラグを明示的に設定していない列がモデルでリグレッサとして使用される場合もあります。

処理されたモデルで実際に使用されたリグレッサを特定するには、マイニング モデルのスキーマ行セットに対してクエリを実行します。以下に例を示します。

SELECT COLUMN_NAME, MODELING_FLAG
FROM $system.DMSCHEMA_MINING_columnS
WHERE MODEL_NAME = '<model name>'

   マイニング モデルを変更して、列のコンテンツの種類を連続から不連続に変更した場合は、マイニング列のフラグを手動で変更してからモデルを再処理する必要があります。

線形回帰モデルのリグレッサ

線形回帰モデルは、Microsoft デシジョン ツリー アルゴリズムに基づいています。Microsoft 線形回帰アルゴリズムを使用していない場合でも、連続属性の回帰を表すツリーやノードがデシジョン ツリー モデルに含まれることはあります。

連続列がリグレッサを表すことを指定する必要はありません。列に REGRESSOR フラグを設定しなくても、Microsoft デシジョン ツリー アルゴリズムにより、データセットが意味のあるパターンを持つ領域に分割されます。違いは、このモデリング フラグを設定すると、ツリーのノードのパターンに合う a*C1 + b*C2 + ... という形式の回帰式をアルゴリズムが見つけようとするということです。残差の合計が計算され、偏差が大きすぎる場合には、ツリーが強制的に分割されます。

たとえば、Income を属性として使用して顧客の購入行動を予測する場合に、その列に REGRESSOR モデリング フラグを設定すると、アルゴリズムはまず、標準の回帰式を使用して Income の値を試します。偏差が大きすぎる場合はその回帰式が放棄され、ツリーが他の属性で分割されます。その後デシジョン ツリー アルゴリズムは、分割後の各分岐で、Income をリグレッサとして使用できるかどうかを試します。

FORCE_REGRESSOR パラメーターを使用すると、アルゴリズムで特定のリグレッサが使用されるようにすることができます。このパラメーターは、デシジョン ツリー アルゴリズムと線形回帰アルゴリズムで使用できます。