當您針對數據採礦模型建立查詢時,您可以建立內容查詢,以提供分析中探索到之模式的詳細數據,或者您可以建立預測查詢,該查詢會使用模型中的模式來為新數據進行預測。 例如,內容查詢可能會提供回歸公式的其他詳細數據,而預測查詢可能會告訴您新的數據點是否符合模型。 您也可以使用查詢來擷取模型的相關元數據。
本節說明如何建立以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, MAXIMUM_OUTPUT_ATTRIBUTES=255, MINIMUM_SUPPORT=10, SCORE_METHOD=4, SPLIT_METHOD=3, 強制回歸器= |
備註
參數設定 “ ”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.屬性名稱 | t.屬性值 | t.支援 | t.概率 | t.變異數 | 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 |
相較之下,在 採礦圖例中,回歸公式會顯示如下:
年收入 = 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
此查詢會傳回兩個數據列,一個來自採礦模型內容,以及包含係數之巢狀數據表的數據列。 此處未包含ATTRIBUTE_NAME數據行,因為係數一律為空白。
| MODEL_NAME | t.屬性值 | t.VALUETYPE |
|---|---|---|
| LR_PredictIncome | ||
| LR_PredictIncome | 35793.5477381267 | 11 |
從線性回歸模型進行預測
您可以使用數據採礦設計師中的 [採礦模型預測] 索引卷標,在線性回歸模型上建置預測查詢。 預測查詢產生器可在 SQL Server Management Studio 和 SQL Server Data Tools (SSDT) 中使用。
備註
您也可以使用適用於 Excel 的 SQL Server 2005 數據採礦載入巨集或適用於 Excel 的 SQL Server 2008 數據採礦載入巨集,在回歸模型上建立查詢。 即使 Excel 的數據採礦載入巨集未建立回歸模型,您也可以瀏覽和查詢任何儲存在 Analysis Services 實例上的採礦模型。
範例查詢 4:使用單一查詢預測收入
在回歸模型上建立單一查詢最簡單的方式是使用 [單一查詢輸入 ] 對話方塊。 例如,您可以選取適當的回歸模型、選擇 Singleton Query,然後輸入 20 作為 Age 的值,以建置下列 DMX 查詢。
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 - 數據採礦)