データ マイニング モデルに対してクエリを作成する場合は、分析で検出されたパターンに関する詳細を提供するコンテンツ クエリを作成することも、モデル内のパターンを使用して新しいデータを使用して予測を行う予測クエリを作成することもできます。
このセクションでは、Microsoft ロジスティック回帰アルゴリズムに基づくモデルのクエリを作成する方法について説明します。
コンテンツ クエリ
データ マイニング スキーマ行セットを使用したモデル パラメーターの取得
予測クエリ
ロジスティック回帰モデルに関する情報の取得
ロジスティック回帰モデルは、Microsoft ニューラル ネットワーク アルゴリズムと特別なパラメーター セットを使用して作成されます。したがって、ロジスティック回帰モデルには、ニューラル ネットワーク モデルと同じ情報の一部がありますが、あまり複雑ではありません。 モデル コンテンツの構造と、どのような種類の情報を格納するノードの種類を理解するには、「 ロジスティック回帰モデルのマイニング モデル コンテンツ (Analysis Services - データ マイニング)」を参照してください。
クエリ シナリオを進めるために、中間データ マイニング チュートリアルの「 レッスン 5: ニューラル ネットワークとロジスティック回帰モデルの構築 (中間データ マイニング チュートリアル)」のセクションで説明されているように、ロジスティック回帰モデルを作成できます。
また、基本的なデータ マイニング チュートリアルから、マイニング構造のターゲットメーリングを使用することもできます。
ALTER MINING STRUCTURE [Targeted Mailing]
ADD MINING MODEL [TM_Logistic Regression]
([Customer Key],
[Age],
[Bike Buyer] PREDICT,
[Yearly Income] PREDICT,
[Commute Distance],
[English Education],
Gender,
[House Owner Flag],
[Marital Status],
[Number Cars Owned],
[Number Children At Home],
[Region],
[Total Children]
)
USING Microsoft_Logistic_Regression
サンプル クエリ 1: データ マイニング スキーマ行セットを使用したモデル パラメーターの取得
データ マイニング スキーマ行セットに対してクエリを実行すると、モデルの作成時、モデルが最後に処理されたとき、モデルの基になっているマイニング構造の名前、予測可能な属性として使用される列の名前など、モデルに関するメタデータを検索できます。 次の例では、モデルの最初の作成時に使用されたパラメーターと、モデルの名前と型、およびモデルが作成された日付を返します。
SELECT MODEL_NAME, SERVICE_NAME, DATE_CREATED, MINING_PARAMETERS
FROM $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = 'Call Center_LR'
サンプルの結果:
MODEL_NAME | SERVICE_NAME | 作成日 | マイニングパラメータ |
---|---|---|---|
コールセンター_LR | Microsoft_ロジスティック回帰 | 04/07/2009 20:38:33 | HOLDOUT_PERCENTAGE=30、HOLDOUT_SEED=1、MAXIMUM_INPUT_ATTRIBUTES=255、MAXIMUM_OUTPUT_ATTRIBUTES=255、MAXIMUM_STATES=100、SAMPLE_SIZE=10000 |
サンプル クエリ 2: DMX を使用したモデルに関する追加の詳細の検索
次のクエリは、ロジスティック回帰モデルに関するいくつかの基本情報を返します。 ロジスティック回帰モデルは、入力として使用される値を記述する限界統計ノード (NODE_TYPE = 24) の存在など、さまざまな点でニューラル ネットワーク モデルに似ています。 次のクエリ例では、Targeted Mailing モデルを使用し、入れ子になったテーブル (NODE_DISTRIBUTION) から取得して、すべての入力の値を取得します。
SELECT FLATTENED NODE_DISTRIBUTION AS t
FROM [TM_Logistic Regression].CONTENT
結果の一部 :
t.ATTRIBUTE_NAME | t.ATTRIBUTE_VALUE | サポート | t.確率 | t.分散 | t.バリュータイプ |
---|---|---|---|---|---|
年齢 | 行方不明 | 0 | 0 | 0 | 1 |
年齢 | 45.43491192 | 17484 | 1 | 126.9544114 | 3 |
自転車購入者 | 行方不明 | 0 | 0 | 0 | 1 |
自転車購入者 | 0 | 8869 | 0.507263784 | 0 | 4 |
自転車購入者 | 1 | 8615 | 0.492736216 | 0 | 4 |
通勤距離 | 行方不明 | 0 | 0 | 0 | 1 |
通勤距離 | 5-10 マイル | 3033 | 0.173472889 | 0 | 4 |
実際のクエリでは、さらに多くの行が返されます。ただし、このサンプルは、入力に関して提供される情報の種類を示しています。 不連続入力の場合、使用可能な各値が表に一覧表示されます。 Age などの連続値入力の場合、完全なリストは不可能であるため、入力は平均として分離されます。 限界統計ノードの情報を使用する方法の詳細については、「 ロジスティック回帰モデルのマイニング モデル コンテンツ (Analysis Services - データ マイニング)」を参照してください。
注
結果は表示しやすくなりましたが、プロバイダーが階層行セットをサポートしている場合は、入れ子になったテーブルを 1 つの列に返すことができます。
ロジスティック回帰モデルの予測クエリ
Predict (DMX) 関数をあらゆる種類のマイニング モデルと共に使用して、モデルに新しいデータを提供し、新しい値に基づいて予測を行うことができます。 関数を使用して、予測が正しい確率など、予測に関する追加情報を返すこともできます。 このセクションでは、ロジスティック回帰モデルに対する予測クエリの例をいくつか示します。
サンプル クエリ 3: 連続値の予測を行う
ロジスティック回帰では入力と予測の両方に連続属性を使用できるため、データのさまざまな要因を関連付けるモデルを簡単に作成できます。 予測クエリを使用して、これらの要因間の関係を調べることができます。
次のクエリ サンプルは、Intermediate Tutorial のコール センター モデルに基づいており、金曜日の AM シフトのサービス グレードを予測するシングルトン クエリを作成します。 PredictHistogram (DMX) 関数は、予測値の有効性を理解するために関連する統計を提供する入れ子になったテーブルを返します。
SELECT
Predict([Call Center_LR].[Service Grade]) as Predicted ServiceGrade,
PredictHistogram([Call Center_LR].[Service Grade]) as [Results],
FROM
[Call Center_LR]
NATURAL PREDICTION JOIN
(SELECT 'Friday' AS [Day Of Week],
'AM' AS [Shift]) AS t
サンプルの結果:
予測されるサービス グレード: 0.102601830123659
結果
サービス グレード | サポート | $PROBABILITY | $ADJUSTEDPROBABILITY | $分散 | $STDEV |
---|---|---|---|---|---|
0.102601830123659 | 83.0232558139535 | 0.988372093023256 | 0 | 0.00120552660600087 | 0.034720694203902 |
0.976744186046512 | 0.0116279069767442 | 0.0116279069767442 | 0 | 0 |
入れ子になったNODE_DISTRIBUTION テーブルの確率、サポート、標準偏差の値の詳細については、「 ロジスティック回帰モデルのマイニング モデル コンテンツ (Analysis Services - データ マイニング)」を参照してください。
サンプル クエリ 4: 不連続値の予測を行う
ロジスティック回帰は、通常、二項結果に寄与する要因を分析するシナリオで使用されます。 チュートリアルで使用するモデルでは、 ServiceGrade という継続的な値が予測されますが、実際のシナリオでは、サービス グレードが分離された目標値を満たしているかどうかを予測するようにモデルを設定できます。 または、継続的な値を使用して予測を出力することもできますが、後で予測された結果を Good、Fair、Poor にグループ化することもできます。
次の例は、予測可能な属性をグループ化する方法を変更する方法を示しています。 これを行うには、マイニング構造のコピーを作成し、値が連続ではなくグループ化されるようにターゲット列の分離方法を変更します。
次の手順では、コール センター データのサービス グレード値のグループ化を変更する方法について説明します。
コール センター マイニング構造とモデルの分離バージョンを作成するには
SQL Server Data Tools (SSDT) のソリューション エクスプローラーで、[ マイニング構造] を展開します。
コール センター.dmm を右クリックし、[ コピー] を選択します。
[ マイニング構造 ] を右クリックし、[ 貼り付け] を選択します。 コール センター 1 という名前の新しいマイニング構造が追加されました。
新しいマイニング構造を右クリックし、[ 名前の変更] を選択します。 新しい名前「コールセンター離散化」を入力します。
新しいマイニング構造をダブルクリックしてデザイナーで開きます。 マイニング モデルもすべてコピーされており、すべてが拡張機能 1 を持っていることに注意してください。 現時点では、名前はそのままにします。
[ マイニング構造 ] タブで、[サービス グレード] の列を右クリックし、[ プロパティ] を選択します。
Content
プロパティを Continuous から Discretized に変更します。DiscretizationMethod
プロパティをクラスターに変更します。 分離 BucketCount の場合は、「3」と入力 します。注
これらのパラメーターは、プロセスを示すために使用されるものであり、必ずしも有効なモデルを生成するとは限りません。
[ マイニング モデル ] メニューの [ プロセス構造とすべてのモデル] を選択します。
次のサンプル クエリは、この分離されたモデルに基づいており、予測された各結果の確率と共に、指定した曜日のサービス グレードを予測します。
SELECT
(PredictHistogram([Call Center_LR 1].[Service Grade])) as [Predictions]
FROM
[Call Center_LR 1]
NATURAL PREDICTION JOIN
(SELECT 'Saturday' AS [Day Of Week]) AS t
期待される結果:
予測
サービス グレード | サポート | $PROBABILITY | $ADJUSTEDPROBABILITY | $分散 | $STDEV |
---|---|---|---|---|---|
0.10872718383125 | 35.7246504770641 | 0.425293458060287 | 0.0170168360030293 | 0 | 0 |
0.05855769230625 | 31.7098880800703 | 0.377498667619885 | 0.020882020060454 | 0 | 0 |
0.170169491525 | 15.6109159883202 | 0.185844237956192 | 0.0661386571386049 | 0 | 0 |
0.954545454545455 | 0.0113636363636364 | 0.0113636363636364 | 0 | 0 |
予測された結果は、指定された 3 つのカテゴリにグループ化されていることに注意してください。ただし、これらのグループ化は、ビジネス目標として設定できる任意の値ではなく、データ内の実際の値のクラスタリングに基づいています。
予測関数の一覧
すべての Microsoft アルゴリズムでは、共通の関数セットがサポートされています。 ただし、Microsoft ロジスティック回帰アルゴリズムでは、次の表に示す追加の関数がサポートされています。
予測関数 | 使用方法 |
IsDescendant (DMX) | 1 つのノードがモデル内の別のノードの子であるかどうかを判断します。 |
PredictAdjustedProbability (DMX) | 指定した状態の調整された確率を返します。 |
PredictHistogram (DMX) | 指定した列の予測値または値のセットを返します。 |
PredictProbability (DMX) | 指定した状態の確率を返します。 |
PredictStdev (DMX) | 予測値の標準偏差を返します。 |
PredictSupport (DMX) | 指定した状態のサポート値を返します。 |
PredictVariance (DMX) | 指定した列の分散を返します。 |
すべての Microsoft アルゴリズムに共通する関数の一覧については、「 一般的な予測関数 (DMX)」を参照してください。 特定の関数の構文については、「 データ マイニング拡張機能 (DMX) 関数リファレンス」を参照してください。
注
ニューラル ネットワークおよびロジスティック回帰モデルの場合、 PredictSupport (DMX) 関数は、モデル全体のトレーニング セットのサイズを表す単一の値を返します。
こちらもご覧ください
データ マイニング クエリ
Microsoft ロジスティック回帰アルゴリズム
Microsoft ロジスティック回帰アルゴリズムテクニカル リファレンス
ロジスティック回帰モデルのマイニング モデル コンテンツ (Analysis Services - データ マイニング)
レッスン 5: ニューラル ネットワークとロジスティック回帰モデルの構築 (中間データ マイニング チュートリアル)