線形回帰モデルのクエリ例
データ マイニング モデルに対するクエリを作成する際には、コンテンツ クエリを作成することも、予測クエリを作成することもできます。コンテンツ クエリでは、分析で検出されたパターンの詳細情報を取得できます。予測クエリでは、モデル内のパターンを使用して新しいデータについての予測を行うことができます。 たとえばコンテンツ クエリを使用すると、回帰式に関する追加情報を取得できるのに対し、予測クエリを使用すると、新しいデータ ポイントがモデルに適合するかどうかを調べることができます。 クエリを使用してモデルに関するメタデータを取得することもできます。
ここでは、Microsoft 線形回帰アルゴリズムに基づいたモデルに対するクエリの作成方法について説明します。
Note
線形回帰アルゴリズムは、Microsoft デシジョン ツリー アルゴリズムの特殊なケースに基づいているため、これと多くの類似点があります。また、連続する予測可能属性を使用する一部のデシジョン ツリーには、回帰式を含めることができます。 詳細については、「 Microsoft デシジョン ツリー アルゴリズム テクニカル リファレンス」を参照してください。
コンテンツ クエリ
データ マイニング スキーマ行セットを使用してモデルに対して使用されたパラメーターを特定する
予測クエリ
線形回帰モデルに関する情報の入手
線形回帰モデルの構造は非常に単純であり、マイニング モデルではデータを単一のノードとして表現されます。このノードは回帰式を定義します。 詳細については、「 ロジスティック回帰モデルのマイニング モデル コンテンツ (Analysis Services - データ マイニング)」を参照してください。
サンプル クエリ 1: データ マイニング スキーマ行セットを使用してモデルに対して使用されたパラメーターを特定する
データ マイニング スキーマ行セットに対してクエリを実行すると、モデルに関するメタデータを取得できます。 このメタデータには、モデルが作成された日時、モデルが最後に処理された日時、モデルの基になるマイニング構造の名前、予測可能な属性として使用されている列の名前などが含まれます。 モデルが最初に作成されたときに使用されたパラメーターを取得することもできます。
SELECT MINING_PARAMETERS
FROM $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = 'TM_PredictIncome'
サンプルの結果 :
MINING_PARAMETERS |
---|
COMPLEXITY_PENALTY=0.9, MAXIMUM_INPUT_ATTRIBUTES=255, MAXIMUM_OUTPUT_ATTRIBUTES=255, MINIMUM_SUPPORT=10, SCORE_METHOD=4, SPLIT_METHOD=3, FORCE_REGRESSOR= |
Note
パラメーター設定 "FORCE_REGRESSOR =
" は、FORCE_REGRESSOR パラメーターの現在の値が NULL であることを示します。
サンプル クエリ 2: モデルの回帰式を取得する
次のクエリでは、「 Basic Data Mining Tutorial」で使用したものと同じ Targeted Mailing データ ソースを使用して作成された線形回帰モデルのマイニング モデル コンテンツを返します。 このモデルでは、年齢に基づいて顧客の収入を予測します。
このクエリは、回帰式を含むノードのコンテンツを返します。 各変数と係数は、入れ子になった NODE_DISTRIBUTION テーブルの個別の行に保存されます。 完全な回帰式を表示する場合は、 Microsoft ツリー ビューアーを使用します。 [(すべて)] ノードをクリックして [マイニング凡例]を開くと表示されます。
SELECT FLATTENED NODE_DISTRIBUTION as t
FROM LR_PredictIncome.CONTENT
Note
SELECT <column name> from NODE_DISTRIBUTION
のようなクエリを使用して入れ子になったテーブルの個々の列を参照する場合、 SUPPORT や PROBABILITYなどの一部の列名は、同名の予約済みキーワードと区別するために角かっこで囲む必要があります。
期待される結果:
T.ATTRIBUTE_NAME | t.ATTRIBUTE_VALUE | t.SUPPORT | t.PROBABILITY | t.VARIANCE | t.VALUETYPE |
---|---|---|---|---|---|
Yearly Income | Missing | 0 | 0.000457142857142857 | 0 | 1 |
Yearly Income | 57220.8876687257 | 17484 | 0.999542857142857 | 1041275619.52776 | 3 |
Age | 471.687717702463 | 0 | 0 | 126.969442359327 | 7 |
Age | 234.680904692439 | 0 | 0 | 0 | 8 |
Age | 45.4269617936399 | 0 | 0 | 126.969442359327 | 9 |
35793.5477381267 | 0 | 0 | 1012968919.28372 | 11 |
一方、 [マイニング凡例]では、回帰式は次のように表示されます。
Yearly Income = 57,220.919 + 471.688 * (Age - 45.427)
[マイニング凡例]ではいくつかの数字が丸められますが、NODE_DISTRIBUTION テーブルと [マイニング凡例] には基本的に同じ値が格納されます。
VALUETYPE 列の値を参照すると、各行に含まれている情報の種類がわかるため、結果をプログラムで処理する場合に役に立ちます。 次の表に、線形回帰式の出力となる値の種類を示します。
VALUETYPE |
---|
1 (Missing: 不足) |
3 (Continuous: 連続) |
7 (Coefficient: 係数) |
8 (Score Gain: スコア ゲイン) |
9 (Statistics: 統計) |
7 (Coefficient: 係数) |
8 (Score Gain: スコア ゲイン) |
9 (Statistics: 統計) |
11 (Intercept: 切片) |
回帰モデルの各値型の意味の詳細については、「 線形回帰モデルのマイニング モデル コンテンツ (Analysis Services - データ マイニング)」を参照してください。
サンプル クエリ 3: モデルの係数のみを取得する
VALUETYPE 列挙を使用すると、次のクエリに示すように回帰式の係数のみを返すことができます。
SELECT FLATTENED MODEL_NAME,
(SELECT ATTRIBUTE_VALUE, VALUETYPE
FROM NODE_DISTRIBUTION
WHERE VALUETYPE = 11)
AS t
FROM LR_PredictIncome.CONTENT
このクエリでは、マイニング モデル コンテンツの行と、係数を含む入れ子になったテーブルの行の 2 つの行が返されます。 ATTRIBUTE_NAME 列は、係数に対して常に空であるためここには含まれていません。
MODEL_NAME | t.ATTRIBUTE_VALUE | t.VALUETYPE |
---|---|---|
LR_PredictIncome | ||
LR_PredictIncome | 35793.5477381267 | 11 |
線形回帰モデルから予測を作成する
データ マイニング デザイナーの [マイニング モデル予測] タブを使用して、線形回帰モデルに対する予測クエリを作成します。 予測クエリ ビルダーは、SQL Server Management StudioとSQL Server Data Tools (SSDT) の両方で使用できます。
Note
また、SQL Server 2005 Data Mining Add-ins for Excel または SQL Server 2008 Data Mining Add-ins for Excel を使用して、回帰モデルに対するクエリを作成することもできます。 Excel 用データ マイニング アドインでは回帰モデルは作成されませんが、Analysis Services のインスタンスに格納されているマイニング モデルを参照してクエリを実行できます。
サンプル クエリ 4: 単一クエリを使用して収入を予測する
回帰モデルで単一クエリを作成する最も簡単な方法は、 [単一クエリ入力] ダイアログ ボックスを使用することです。 たとえば、適切な回帰モデルを選択し、[シングルトン クエリ] を選択し、Age の値として「」と入力20
することで、次の DMX クエリを作成できます。
SELECT [LR_PredictIncome].[Yearly Income]
From [LR_PredictIncome]
NATURAL PREDICTION JOIN
(SELECT 20 AS [Age]) AS t
サンプルの結果 :
Yearly Income |
---|
45227.302092176 |
サンプル クエリ 5: 回帰モデルで予測関数を使用する
線形回帰モデルでは多くの標準の予測関数を使用できます。 次の例は、予測クエリの結果にいくつかの説明的な統計情報を追加する方法を示しています。 これらの結果から、このモデルの平均からの偏差が相当あることがわかります。
SELECT
([LR_PredictIncome].[Yearly Income]) as [PredIncome],
(PredictStdev([LR_PredictIncome].[Yearly Income])) as [StDev1]
From
[LR_PredictIncome]
NATURAL PREDICTION JOIN
(SELECT 20 AS [Age]) AS t
サンプルの結果 :
Yearly Income | StDev1 |
---|---|
45227.302092176 | 31827.1726561396 |
予測関数の一覧
すべての Microsoft アルゴリズムでは、共通の関数セットがサポートされています。 ただし、Microsoft 線形回帰アルゴリズムでは、次の表に示す追加の関数がサポートされています。
予測関数 | 使用法 |
IsDescendant (DMX) | あるノードがモデル内の別のノードの子であるかどうかを示します。 |
IsInNode (DMX) | 指定されたノードが現在のケースを含んでいるかどうかを示します。 |
PredictHistogram (DMX) | 指定された列に対して、予測された値、または値のセットを返します。 |
PredictNodeId (DMX) | 各ケースの Node_ID を返します。 |
PredictStdev (DMX) | 予測された値の標準偏差を返します。 |
PredictSupport (DMX) | 指定された状態に対するサポート値を返します。 |
PredictVariance (DMX) | 指定された列の分散を返します。 |
すべての Microsoft アルゴリズムに共通する関数の一覧については、「 データ マイニング アルゴリズム (Analysis Services - データ マイニング)」を参照してください。 これらの関数の使用方法の詳細については、「 データ マイニング拡張機能 (DMX) 関数リファレンス」を参照してください。
参照
Microsoft 線形回帰アルゴリズム
データ マイニング クエリ
Microsoft 線形回帰アルゴリズム テクニカル リファレンス
線形回帰モデルのマイニング モデル コンテンツ (Analysis Services - データ マイニング)