線形回帰モデルのクエリ例

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

重要

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

データ マイニング モデルに対するクエリを作成する際には、コンテンツ クエリを作成することも、予測クエリを作成することもできます。コンテンツ クエリでは、分析で検出されたパターンの詳細情報を取得できます。予測クエリでは、モデル内のパターンを使用して新しいデータについての予測を行うことができます。 たとえばコンテンツ クエリを使用すると、回帰式に関する追加情報を取得できるのに対し、予測クエリを使用すると、新しいデータ ポイントがモデルに適合するかどうかを調べることができます。 クエリを使用してモデルに関するメタデータを取得することもできます。

ここでは、Microsoft 線形回帰アルゴリズムに基づいたモデルに対するクエリの作成方法について説明します。

注意

線形回帰アルゴリズムは、Microsoft デシジョン ツリー アルゴリズムの特殊なケースに基づいているため、これと多くの類似点があります。また、連続する予測可能属性を使用する一部のデシジョン ツリーには、回帰式を含めることができます。 詳細については、「 Microsoft デシジョン ツリー アルゴリズム テクニカル リファレンス」を参照してください。

コンテンツ クエリ

データ マイニング スキーマ行セットを使用してモデルに対して使用されたパラメーターを特定する

DMX を使用してモデルの回帰式を取得する

モデルの係数のみを取得する

予測クエリ

単一クエリを使用して収入を予測する

回帰モデルで予測関数を使用する

線形回帰モデルに関する情報の入手

線形回帰モデルの構造は非常に単純であり、マイニング モデルではデータを単一のノードとして表現されます。このノードは回帰式を定義します。 詳細については、「 ロジスティック回帰モデルのマイニング モデル コンテンツ (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=

注意

パラメーター設定 "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  

注意

SELECT <column name> from NODE_DISTRIBUTIONのようなクエリを使用して入れ子になったテーブルの個々の列を参照する場合、 SUPPORTPROBABILITYなどの一部の列名は、同名の予約済みキーワードと区別するために角かっこで囲む必要があります。

期待される結果:

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の両方で使用できます。

注意

また、Excel 用の SQL Server 2005 (9.x) データ マイニング アドインまたは Excel 用の SQL Server 2008 データ マイニング アドインを使用して、回帰モデルに対するクエリを作成することもできます。 Excel 用データ マイニング アドインでは回帰モデルは作成されませんが、SQL Server Analysis Servicesのインスタンスに格納されているすべてのマイニング モデルを参照してクエリを実行できます。

上に戻る

サンプル クエリ 4: 単一クエリを使用して収入を予測する

回帰モデルで単一クエリを作成する最も簡単な方法は、 [単一クエリ入力] ダイアログ ボックスを使用することです。 たとえば次の DMX クエリを作成するには、適切な回帰モデルを選択し、 [単一クエリ]を選択して、 Age の値として「 20」を入力します。

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 - データ マイニング)