查詢線性迴歸模型 (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:擷取模型的迴歸公式

下列查詢會針對利用<資料採礦基本教學課程>中所使用之相同目標郵寄資料來源所建立的線性迴歸模型,傳回採礦模型內容。此模型會根據年齡預測客戶收入。

查詢會傳回包含迴歸公式之節點的內容。每個變數和係數都儲存在 NODE_DISTRIBUTION 資料表的個別資料列中。如果您要檢視完整的迴歸公式,使用 Microsoft 樹狀檢視器,按一下 (All) 節點,然後開啟 [採礦圖例]

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 (遺漏)

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

此查詢會傳回兩個資料列,其中一個資料列來自採礦模型內容,而另一個資料列則來自包含係數的巢狀資料表。ATTRIBUTE_NAME 資料行不包含在此處,因為該資料行對係數來說,永遠是空白的。

MODEL_NAME

t.ATTRIBUTE_VALUE

t.VALUETYPE

LR_PredictIncome

  

  

LR_PredictIncome

35793.5477381267

11

回頁首

根據線性迴歸模型進行預測

您可以使用資料採礦設計師中的 [採礦模型預測] 索引標籤,在線性迴歸模型上建立預測查詢。在 SQL Server Management Studio 和 Business Intelligence Development Studio 中都提供預測查詢產生器。

[!附註]

您也可以使用適用於 Excel 的 SQL Server 2005 資料採礦增益集或適用於 Excel 的 SQL Server 2008 資料採礦增益集,在迴歸模型上建立查詢。即使適用於 Excel 的資料採礦增益集沒有建立迴歸模型,您也可以瀏覽並查詢儲存在 Analysis Services 執行個體上的任何採礦模型。

回頁首

範例查詢 4:使用單一查詢預測收入

在迴歸模型上建立單一查詢最簡單的方式是使用 [單一查詢輸入] 對話方塊。例如,您可以適當的迴歸模型、選擇 [單一查詢],然後輸入 20 做為 Age 的值來建立下列 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 線性迴歸演算法支援下表所列出的其他函數。

如需所有 Microsoft 演算法常用的函數清單,請參閱<資料採礦演算法 (Analysis Services - 資料採礦)>。如需有關如何使用這些函數的詳細資訊,請參閱<資料採礦延伸模組 (DMX) 函數參考>。