線性回歸模型查詢範例
適用於: 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 判定樹演演算法技術參考。
內容查詢
只傳回模型 的係數
預測查詢
尋找線性回歸模型的相關信息
線性回歸模型的結構非常簡單:採礦模型會將數據表示為單一節點,以定義回歸公式。 如需詳細資訊,請參閱羅吉斯回歸模型的 採礦模型內容(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數據表的個別數據列中。 如果您想要檢視完整的回歸公式,請使用
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.SUPPORT | t.PROBABILITY | t.VARIANCE | t.VALUETYPE |
---|---|---|---|---|---|
每年收入 | 失蹤 | 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 |
相較之下,在 採礦圖例中,回歸公式如下所示:
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) 數據採礦載入宏或適用於 Excel 的 SQL Server 2008 數據採礦載載宏,在回歸模型上建立查詢。 即使 Excel 的數據採礦載入宏未建立回歸模型,您也可以瀏覽和查詢儲存在 SQL Server Analysis Services 實例上的任何採礦模型。
範例查詢 4:使用單一查詢預測收入
在回歸模型上建立單一查詢最簡單的方式,是使用 [單一查詢輸入] 對話框
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) | 判斷某個節點是否為模型中另一個節點的子系。 |
IsInNode (DMX) | 指出指定的節點是否包含目前的案例。 |
PredictHistogram (DMX) | 傳回所指定數據行的預測值或一組值。 |
PredictNodeId (DMX) | 傳回每個案例的Node_ID。 |
PredictStdev (DMX) | 傳回預測值的標準偏差。 |
PredictSupport (DMX) | 傳回指定狀態的支援值。 |
PredictVariance (DMX) | 傳回指定數據行的變異數。 |
如需所有Microsoft演算法通用的函式清單,請參閱 數據採礦演算法(Analysis Services - 數據採礦)。 如需如何使用這些函式的詳細資訊,請參閱 數據採礦延伸模組 (DMX) 函式參考。
另請參閱
Microsoft 線性回歸演算法
數據採礦查詢
Microsoft 線性回歸演算法技術參考
線性回歸模型的採礦模型內容 (Analysis Services - 數據採礦)