共用方式為


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

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

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

內容查詢

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

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

預測查詢

針對連續值進行預測

針對離散值進行預測

尋找有關羅吉斯迴歸模型的資訊

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

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

您也可以使用<資料採礦基本教學課程>中的採礦結構:Targeted Mailing。然後,執行下列 DMX 指令碼來新增羅吉斯迴歸模型:

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

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

[!附註]

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

回到頁首

使用羅吉斯迴歸模型進行預測

您可以搭配各種採礦模型使用 Predict (DMX) 函數來提供新的資料,並進行預測。您也可以使用這些函數傳回關於預測的其他資訊,例如,預測正確的機率。本節也針對羅吉斯迴歸模型,提供一些預測查詢的範例。

範例查詢 3:針對連續值進行預測

由於羅吉斯迴歸支援將連續屬性同時用於輸入和預測,因此,在資料中建立與各種因數相互關聯的模型相當容易。您可以使用預測查詢探索這些因數之間的關聯性。

下列查詢範例是根據 Call Center 模型,而且會建立單一查詢來預測星期五早班的服務等級。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:針對離散值進行預測

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

下列範例說明如何變更可預測屬性的分組方式。若要這樣做,您可以製作採礦結構的複本,然後變更目標資料行的離散化方法。下列程序描述如何變更客服中心資料內 Service Grade 值的分組方式。

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

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

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

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

  4. 以滑鼠右鍵按一下新採礦結構,再選取 [重新命名]。輸入新名稱客服中心離散化。

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

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

  7. 將 Content 屬性從 [連續] 變更為 [離散化]。將 DiscretizationMethod 屬性變更為 [群集]。針對離散化 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.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) 會傳回代表整個模型之定型集大小的單一值。