當您針對數據採礦模型建立查詢時,可以建立內容查詢,以提供分析中所探索模式的詳細數據,或者您可以建立預測查詢,該查詢會使用模型中的模式來使用新數據進行預測。
本節說明如何針對以 Microsoft 羅吉斯回歸演算法為基礎的模型建立查詢。
內容查詢
預測查詢
取得羅吉斯回歸模型的相關信息
羅吉斯回歸模型是使用具有一組特殊參數的Microsoft類神經網路演算法所建立;因此,羅吉斯回歸模型有一些與神經網路模型相同的資訊,但較不複雜。 若要瞭解模型內容的結構,以及哪些節點類型會儲存何種資訊,請參閱羅吉斯回歸模型的採礦模型內容(Analysis Services - 數據採礦)。
若要遵循查詢案例,您可以建立羅吉斯回歸模型,如元數據採礦教學課程: 第 5 課:建置類神經網路和羅吉斯回歸模型(元數據採礦教學課程)的下一節所述。
您也可以使用 基本資料挖掘教程中的資料挖掘結構 Targeted Mailing。
ALTER MINING STRUCTURE [Targeted Mailing]
ADD MINING MODEL [TM_Logistic Regression]
([Customer Key],
[Age],
[Bike Buyer] PREDICT,
[Yearly Income] PREDICT,
[Commute Distance],
[English Education],
Gender,
[House Owner Flag],
[Marital Status],
[Number Cars Owned],
[Number Children At Home],
[Region],
[Total Children]
)
USING Microsoft_Logistic_Regression
範例查詢 1:使用數據採礦架構數據列集擷取模型參數
藉由查詢數據採礦架構數據列集,您可以尋找模型的相關元數據,例如建立模型時、上次處理模型時、模型所依據的採礦結構名稱,以及用來作為可預測屬性的數據行名稱。 下列範例會傳回第一次建立模型時所使用的參數,以及模型的名稱和類型,以及其建立日期。
SELECT MODEL_NAME, SERVICE_NAME, DATE_CREATED, MINING_PARAMETERS
FROM $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = 'Call Center_LR'
範例結果:
| MODEL_NAME | SERVICE_NAME | 建立日期 | 挖礦參數 |
|---|---|---|---|
| 呼叫中心_LR | Microsoft_Logistic_Regression | 04/07/2009 20:38:33 | HOLDOUT_PERCENTAGE=30, HOLDOUT_SEED=1, MAXIMUM_INPUT_ATTRIBUTES=255, MAXIMUM_OUTPUT_ATTRIBUTES=255, MAXIMUM_STATES=100, SAMPLE_SIZE=10000 |
範例查詢 2:使用 DMX 尋找模型的其他詳細數據
下列查詢會傳回羅吉斯回歸模型的一些基本資訊。 羅吉斯回歸模型在許多方面都類似於類神經網路模型,包括有一個臨界統計數據節點(NODE_TYPE = 24)來描述做為輸入的值。 這個範例查詢會使用 Targeted Mailing 模型,並從巢狀數據表 NODE_DISTRIBUTION 中擷取所有輸入的值。
SELECT FLATTENED NODE_DISTRIBUTION AS t
FROM [TM_Logistic Regression].CONTENT
部分結果:
| t.ATTRIBUTE_NAME | t.屬性值 | t.SUPPORT | t.PROBABILITY | t.變異數 | t.VALUETYPE |
|---|---|---|---|---|---|
| 年齡 | 失蹤 | 0 | 0 | 0 | 1 |
| 年齡 | 45.43491192 | 17484 | 1 | 126.9544114 | 3 |
| 自行車買家 | 失蹤 | 0 | 0 | 0 | 1 |
| 自行車買家 | 0 | 8869 | 0.507263784 | 0 | 4 |
| 自行車購買者 | 1 | 8615 | 0.492736216 | 0 | 4 |
| 通勤距離 | 失蹤 | 0 | 0 | 0 | 1 |
| 通勤距離 | 5-10 英里 | 3033 | 0.173472889 | 0 | 4 |
實際的查詢會傳回更多數據列;不過,此範例說明有關輸入的信息類型。 針對離散輸入,每個可能的值都會列在數據表中。 對於 Age 之類的連續值輸入,完全清單是不可能的,因此輸入會離散化為平均值。 如需如何使用臨界統計數據節點中資訊的詳細資訊,請參閱羅吉斯回歸模型的採礦模型內容(Analysis Services - 數據採礦)。
備註
結果已扁平化以方便檢視,但如果您的提供者支援階層式數據列集,您可以在單一數據行中傳回巢狀數據表。
羅吉斯回歸模型的預測查詢
您可以使用 Predict (DMX) 函式搭配各種採礦模型,為模型提供新的數據,並根據新值進行預測。 您也可以使用函式傳回有關預測的其他資訊,例如預測正確機率。 本節提供羅吉斯回歸模型的一些預測查詢範例。
範例查詢 3:針對連續值進行預測
由於羅吉斯回歸支援針對輸入和預測使用連續屬性,因此很容易建立模型,使數據中的各種因素相互關聯。 您可以使用預測查詢來探索這些因素之間的關聯性。
下列查詢範例是以來自中級教學課程的通話中心模型為基礎,並建立單獨查詢來預測星期五上午班次的服務質量。 PredictHistogram (DMX) 函式會傳回巢狀數據表,提供與了解預測值有效性相關的統計數據。
SELECT
Predict([Call Center_LR].[Service Grade]) as Predicted ServiceGrade,
PredictHistogram([Call Center_LR].[Service Grade]) as [Results],
FROM
[Call Center_LR]
NATURAL PREDICTION JOIN
(SELECT 'Friday' AS [Day Of Week],
'AM' AS [Shift]) AS t
範例結果:
預測服務等級:0.102601830123659
結果
| 服務等級 | $SUPPORT | $PROBABILITY | $ADJUSTEDPROBABILITY | $變異數 | $STDEV |
|---|---|---|---|---|---|
| 0.102601830123659 | 83.0232558139535 | 0.988372093023256 | 0 | 0.00120552660600087 | 0.034720694203902 |
| 0.976744186046512 | 0.0116279069767442 | 0.0116279069767442 | 0 | 0 |
如需巢狀NODE_DISTRIBUTION數據表中機率、支持和標準偏差值的詳細資訊,請參閱羅吉斯回歸模型的採礦模型內容(Analysis Services - 數據採礦)。
範例查詢 4:針對離散值進行預測
羅吉斯回歸通常用於您想要分析影響二元結果的因素。 雖然教學課程中使用的模型會預測連續值 ServiceGrade,但在實際案例中,您可能想要設定模型來預測服務等級是否符合某些離散化目標值。 或者,您可以使用連續值來輸出預測,但稍後將預測結果分組為 Good、 Fair 或 Poor。
下列範例說明如何變更可預測屬性分組的方式。 若要這樣做,您可以建立採礦結構的複本,然後變更目標數據行的離散化方法,讓值分組而不是連續。
下列程序說明如何在通話中心數據中變更服務等級值的群組。
建立通話中心採礦結構和模型的離散化版本
在 SQL Server Data Tools(SSDT)的方案總管中,展開採礦結構。
以滑鼠右鍵按兩下 [通話中心.dmm],然後選取 [ 複製]。
以滑鼠右鍵按兩下 [採礦結構 ],然後選取 [貼上]。 另一個名為 Call Center 1 的採礦結構已經被新增。
以滑鼠右鍵按兩下新的採礦結構,然後選取 [ 重新命名]。 輸入新名稱 ,呼叫中心離散化。
雙擊新的採礦結構以在設計介面中開啟它。 請注意,採礦模型也都已複製,而且都有延伸模組 1。 請將名稱保持原樣。
在 [ 採礦結構] 索引卷標中,以滑鼠右鍵按兩下 [服務等級] 的數據行,然後選取 [ 屬性]。
將
Content屬性從 Continuous 變更為 Discretized。 將DiscretizationMethod屬性變更為 [叢集]。 針對 [離散化 BucketCount],輸入 3。備註
這些參數只是用來說明程式,而且不一定會產生有效的模型。
從 [ 採礦模型] 功能表中,選取 [ 處理結構] 和 [所有模型]。
下列範例查詢是以這個離散化模型為基礎,並預測一周指定日的服務等級,以及每個預測結果的機率。
SELECT
(PredictHistogram([Call Center_LR 1].[Service Grade])) as [Predictions]
FROM
[Call Center_LR 1]
NATURAL PREDICTION JOIN
(SELECT 'Saturday' AS [Day Of Week]) AS t
預期的結果:
預測
| 服務等級 | $SUPPORT | $PROBABILITY | $ADJUSTEDPROBABILITY | $變異數 | $STDEV |
|---|---|---|---|---|---|
| 0.10872718383125 | 35.7246504770641 | 0.425293458060287 | 0.0170168360030293 | 0 | 0 |
| 0.05855769230625 | 31.7098880800703 | 0.377498667619885 | 0.020882020060454 | 0 | 0 |
| 0.170169491525 | 15.6109159883202 | 0.185844237956192 | 0.0661386571386049 | 0 | 0 |
| 0.954545454545455 | 0.0113636363636364 | 0.0113636363636364 | 0 | 0 |
請注意,預測的結果已依指定分組為三個類別:不過,這些群組是以數據中實際值的叢集為基礎,而不是您可能設定為商務目標的任意值。
預測函式清單
所有Microsoft演算法都支援一組常見的函式。 不過,Microsoft羅吉斯回歸演算法支援下表所列的其他函式。
| 預測函數 | 用法 |
| IsDescendant (DMX) | 判斷某個節點是否為模型中另一個節點的子系。 |
| PredictAdjustedProbability (DMX) | 傳回指定狀態的調整機率。 |
| PredictHistogram (DMX) | 傳回所指定數據行的預測值或一組值。 |
| PredictProbability (DMX) | 傳回指定狀態的機率。 |
| PredictStdev (DMX) | 傳回預測值的標準偏差。 |
| PredictSupport (DMX) | 傳回指定狀態的支援值。 |
| PredictVariance (DMX) | 傳回指定數據行的變異數。 |
如需所有Microsoft演算法通用的函式清單,請參閱一般預測函數(DMX)。 如需特定函式的語法,請參閱 數據採礦延伸模組 (DMX) 函式參考。
備註
針對類神經網路和羅吉斯回歸模型, PredictSupport (DMX) 函式會傳回單一值,代表整個模型的定型集大小。
另請參閱
數據採礦查詢
Microsoft羅吉斯回歸演算法
Microsoft羅吉斯回歸演算法技術參考
羅吉斯回歸模型的採礦模型內容 (Analysis Services - 數據採礦)
第5課:建置類神經網路和羅吉斯回歸模型(元數據採礦教學課程)