羅吉斯回歸模型查詢範例
適用於: 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 羅吉斯回歸演算法為基礎的模型建立查詢。
內容查詢
使用數據採礦架構數據列集 擷取模型參數
使用 DMX 尋找模型的其他詳細數據
預測查詢
取得羅吉斯回歸模型的相關信息
羅吉斯回歸模型是使用具有一組特殊參數的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 | DATE_CREATED | MINING_PARAMETERS |
---|---|---|---|
呼叫Center_LR | Microsoft_羅吉斯_回歸 | 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.ATTRIBUTE_VALUE | t.SUPPORT | t.PROBABILITY | t.VARIANCE | t.VALUETYPE |
---|---|---|---|---|---|
年齡 | 失蹤 | 0 | 0 | 0 | 1 |
年齡 | 45.43491192 | 17484 | 1 | 126.9544114 | 3 |
Bike Buyer | 失蹤 | 0 | 0 | 0 | 1 |
Bike Buyer | 0 | 8869 | 0.507263784 | 0 | 4 |
Bike Buyer | 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
範例結果:
預測服務等級 | 服務等級 | $SUPPORT | $PROBABILITY | $ADJUSTEDPROBABILITY | $VARIANCE | $STDEV |
---|---|---|---|---|---|---|
0.102601830123659 | 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] 的 [方案總管] 中,展開 [採礦結構]。
以滑鼠右鍵按兩下 [呼叫中心.dmm],然後選取 [複製]。
以滑鼠右鍵按兩下
採礦結構 ,然後選取 [貼上]。 會新增名為 Call Center 1 的新採礦結構。 以滑鼠右鍵按下新的採礦結構,然後選取 [重新命名 。 輸入新名稱,呼叫中心離散化。
按兩下新的採礦結構,以在設計工具中開啟它。 請注意,採礦模型也都已複製,而且都有延伸模組 1。 將名稱保留為目前。
在 [採礦結構] 索引標籤中,以滑鼠右鍵按兩下 [服務等級] 資料行,然後選取 [[屬性]。
將 Content 属性從 Continuous 變更為 Discretized。 將 DiscretizationMethod 屬性變更為 Clusters。 針對 Discretization 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 | $VARIANCE | $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 課:建置類神經網路和羅吉斯回歸模型 (元數據採礦教學課程)