查詢羅吉斯迴歸模型 (Analysis Services - 資料採礦)

當您針對資料採礦模型建立查詢時,可以建立內容查詢來提供有關分析期間所發現之模式的詳細資料,也可以建立預測查詢來使用模型中的模式,透過新的資料進行預測。

本節說明如何針對以 Microsoft 羅吉斯迴歸演算法為基礎的模型建立查詢。

內容查詢

使用資料採礦結構描述資料列集擷取模型參數

使用 DMX 尋找有關模型的其他詳細資料

預測查詢

針對連續值進行預測

針對離散值進行預測

取得有關羅吉斯迴歸模型的資訊

羅吉斯迴歸模型是使用 Microsoft 類神經網路演算法搭配一組特殊的參數所建立。因此,羅吉斯迴歸模型所擁有的部分資訊與類神經網路模型相同,但是較不複雜。若要了解模型內容的結構,以及哪種節點類型會儲存哪種資訊,請參閱<羅吉斯迴歸模型的採礦模型內容 (Analysis Services - 資料採礦)>。

若要依照查詢案例進行,您可以建立羅吉斯迴歸模型,如<中繼資料採礦教學課程>的下列章節所述:<第五課:建立類神經網路和羅吉斯迴歸模型 (中繼資料採礦教學課程)>。

您也可以使用<資料採礦基本教學課程>中的採礦結構: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

Call Center_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)。這個範例查詢會使用目標郵寄模型,並且從巢狀資料表 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

Age

遺漏

0

0

0

1

Age

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

Commute Distance

遺漏

0

0

0

1

Commute Distance

5-10 英哩

3033

0.173472889

0

4

實際查詢會傳回更多資料列,但是,這個範例說明關於輸入所提供之資訊的類型。若為離散輸入,每個可能值都會列在資料表中。若為連續值輸入 (例如 Age),就無法列出完整清單,因此輸入會離散化為平均值。如需有關如何使用臨界統計資料節點中資訊的詳細資訊,請參閱<羅吉斯迴歸模型的採礦模型內容 (Analysis Services - 資料採礦)>。

[!附註]

這些結果已經過扁平化,讓檢視更為容易,但是如果您的提供者支援階層式資料列集,則可以在單一資料行中傳回巢狀資料表。如需詳細資訊,請參閱《OLE DB 程式設計人員指南》中的<階層式資料列集>(英文)。

回頁首

羅吉斯迴歸模型的預測查詢

您可以搭配各種採礦模型使用 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$VARIANCE$STDEV
0.10260183012365983.02325581395350.98837209302325600.001205526606000870.034720694203902
0.9767441860465120.01162790697674420.011627906976744200

如需有關巢狀 NODE_DISTRIBUTION 資料表中機率、支援和標準差值的詳細資訊,請參閱<羅吉斯迴歸模型的採礦模型內容 (Analysis Services - 資料採礦)>。

回頁首

範例查詢 4:針對離散值進行預測

羅吉斯迴歸通常用於您要分析提供二進位結果之因數的案例中。雖然教學課程中所使用的模型會預測連續值 ServiceGrade,不過在實際案例中,您可能會想要設定模型來預測服務等級是否符合某個離散化目標值。或者,您可能會先使用連續值來輸出預測,然後再將預測的結果分組成良好、普通或差。

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

下列程序描述如何變更撥接中心資料內 Service Grade 值的分組方式。

若要建立離散化版本的撥接中心採礦結構和模型

  1. 在 Business Intelligence Development Studio 的 [方案總管] 中,展開 [採礦結構]

  2. 以滑鼠右鍵按一下 Call Center.dmm 並選取 [複製]

  3. 以滑鼠右鍵按一下 [採礦結構] 並選取 [貼上]。如此就會加入名為 Call Center 1 的新採礦結構。

  4. 以滑鼠右鍵按一下新的採礦結構並選取 [重新命名]。輸入新的名稱:撥接中心離散化。

  5. 按兩下新採礦結構,以在設計師中開啟。請注意,所有的採礦模型都已進行複製,而且都具有延伸模組 1。請暫時保留這些名稱。

  6. [採礦結構] 索引標籤中,以滑鼠右鍵按一下 Service Grade 的資料行,然後選取 [屬性]

  7. 將 Content 屬性從 [連續] 變更為 [離散化]。將 DiscretizationMethod 屬性變更為 [群集]。針對 DiscretizationBucketCount 輸入 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.1087271838312535.72465047706410.4252934580602870.017016836003029300
0.0585576923062531.70988808007030.3774986676198850.02088202006045400
0.17016949152515.61091598832020.1858442379561920.066138657138604900
0.9545454545454550.01136363636363640.011363636363636400

請注意,預測的結果已經依照指定的方式分組成三個類別。不過,這些分組是以資料中實際值的群集為基礎,而非您可能設定為商務目標的二進位值。

回頁首

預測函數的清單

所有 Microsoft 演算法都支援一組常用的函數。不過,Microsoft 羅吉斯迴歸演算法支援下表所列出的其他函數。

如需所有 Microsoft 演算法通用之函數的清單,請參閱<將函數對應至查詢類型 (DMX)>。如需特定函數的語法,請參閱<資料採礦延伸模組 (DMX) 函數參考>。

[!附註]

若是類神經網路與羅吉斯迴歸模型,PredictSupport (DMX) 會傳回代表整個模型之定型集大小的單一值。