共用方式為


羅吉斯回歸模型查詢範例

適用於: 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,但在實際案例中,您可能想要設定模型來預測服務等級是否符合某些離散化目標值。 或者,您可以使用連續值來輸出預測,但稍後將預測結果分組為 GoodFairPoor

下列範例說明如何變更可預測屬性分組的方式。 若要這樣做,您可以建立採礦結構的複本,然後變更目標數據行的離散化方法,讓值分組而不是連續。

下列程序說明如何在通話中心數據中變更服務等級值的群組。

建立通話中心採礦結構和模型的離散化版本
  1. 在 [SQL Server Data Tools] 的 [方案總管] 中,展開 [採礦結構]

  2. 以滑鼠右鍵按兩下 [呼叫中心.dmm],然後選取 [複製]。

  3. 以滑鼠右鍵按兩下 採礦結構,然後選取 [貼上]。 會新增名為 Call Center 1 的新採礦結構。

  4. 以滑鼠右鍵按下新的採礦結構,然後選取 [重新命名 。 輸入新名稱,呼叫中心離散化

  5. 按兩下新的採礦結構,以在設計工具中開啟它。 請注意,採礦模型也都已複製,而且都有延伸模組 1。 將名稱保留為目前。

  6. 在 [採礦結構] 索引標籤中,以滑鼠右鍵按兩下 [服務等級] 資料行,然後選取 [[屬性]

  7. Content 属性從 Continuous 變更為 Discretized。 將 DiscretizationMethod 屬性變更為 Clusters。 針對 Discretization BucketCount,輸入 3

    注意

    這些參數只是用來說明程式,而且不一定會產生有效的模型。

  8. 從 [採礦模型] 功能表中,選取 [進程結構和所有模型

下列範例查詢是以這個離散化模型為基礎,並預測一周指定日的服務等級,以及每個預測結果的機率。

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 課:建置類神經網路和羅吉斯回歸模型 (元數據採礦教學課程)