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