線性迴歸模型查詢範例

適用于: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>中所使用之相同目標郵寄資料來源所建立的線性迴歸模型,傳回採礦模型內容。 此模型會根據年齡預測客戶收入。

查詢會傳回包含迴歸公式之節點的內容。 每個變數和係數都儲存在 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
年齡 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

相較之下,在 [採礦圖例]中,迴歸公式顯示如下:

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和SQL Server Data Tools中使用。

注意

您也可以使用適用于 Excel 的 SQL Server 2005 (9.x) Data Mining Add-ins 或適用于 Excel 的 SQL Server 2008 Data Mining Add-ins 來建立回歸模型的查詢。 即使 Excel 的資料採礦增益集不會建立回歸模型,您也可以流覽和查詢儲存在實例上的任何採礦模型SQL Server 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 線性回歸演算法支援下表所列的其他函式。

預測函數 使用方式
IsDescendant (DMX) 確定某個節點是否為模型中另一個節點的子系。
IsInNode (DMX) 指示指定的節點是否包含目前案例。
PredictHistogram (DMX) 傳回指定之資料行的一個或一組預測值。
PredictNodeId (DMX) 傳回每個案例的 Node_ID。
PredictStdev (DMX) 傳回預測值的標準差。
PredictSupport (DMX) 傳回指定狀態的支援值。
PredictVariance (DMX) 傳回指定之資料行的變異數。

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

另請參閱

Microsoft 線性迴歸演算法
資料採礦查詢
Microsoft 線性迴歸演算法技術參考
線性迴歸模型的採礦模型內容 (Analysis Services - 資料採礦)