SELECT FROM < model > PREDICTION JOIN (DMX)
適用於: SQL Server Analysis Services
使用採礦模型來預測外部資料源中的資料行狀態。 PREDICTION JOIN 語句會比對來源查詢到模型的每個案例。
語法
SELECT [FLATTENED] [TOP <n>] <select expression list>
FROM <model> | <sub select> [NATURAL] PREDICTION JOIN
<source data query> [ON <join mapping list>]
[WHERE <condition expression>]
[ORDER BY <expression> [DESC|ASC]]
引數
n
選擇性。 整數,指定要傳回的資料列數目。
選取運算式清單
衍生自採礦模型之資料行識別碼和運算式的逗號分隔清單。
model
模型識別碼。
子選取
內嵌的 select 語句。
來源資料查詢
來源查詢。
聯結對應清單
選擇性。 邏輯運算式,會比較模型中的資料行與來源查詢中的資料行。
條件運算式
選擇性。 限制從資料行清單傳回之值的條件。
expression
選擇性。 傳回純量值的運算式。
備註
ON 子句會定義來源查詢的資料行與採礦模型中資料行之間的對應。 此對應可用來將源查詢中的資料行導向採礦模型中的資料行,以便資料行做為輸入來建立預測。 < 聯結對應清單中的 > 資料行是使用等號 (=), 相關,如下列範例所示:
[MiningModel].ColumnA = [source data query].Column1 AND
[MiningModel].ColumnB = [source data query].Column2 AND
...
如果您要在 ON 子句中系結巢狀資料表,請確定您系結索引鍵資料行與任何非索引鍵資料行,讓演算法可以正確識別巢狀資料行所屬的記錄。
預測聯結的來源查詢可以是資料表或單一查詢。
您可以指定預測函式,這些預測函式不會傳 < 回選取運算式清單中的 > 資料表運算式和 < 條件運算式 > 。
NATURAL PREDICTION JOIN 會自動將來源查詢中的資料行名稱對應在一起,以符合模型中的資料行名稱。 如果您使用 NATURAL PREDICTION ,可以省略 ON 子句。
WHERE 條件只能套用至可預測的資料行或相關資料行。
ORDER by 子句只能接受單一資料行做為引數;也就是說,您無法排序多個資料行。
範例 1:單一查詢
下列範例示範如何建立查詢,以預測特定人員是否會即時購買自行車。 在此查詢中,資料不會儲存在資料表或其他資料來源中,而是直接輸入查詢。 查詢中的人員具有下列特性:
35 歲
擁有房子
擁有兩輛車
家裡有兩個孩子
使用 TM 決策樹採礦模型和主體的已知特性,查詢會傳回布林值,描述人員是否購買自行車,以及 PredictHistogram (DMX) 函式所 傳回的表格式值,以描述預測的進行方式。
SELECT
[TM Decision Tree].[Bike Buyer],
PredictHistogram([Bike Buyer])
FROM
[TM Decision Tree]
NATURAL PREDICTION JOIN
(SELECT 35 AS [Age],
'5-10 Miles' AS [Commute Distance],
'1' AS [House Owner Flag],
2 AS [Number Cars Owned],
2 AS [Total Children]) AS t
範例 2:使用 OPENQUERY
下列範例示範如何使用儲存在外部資料集中的潛在客戶清單來建立批次預測查詢。 由於資料表是 Analysis Services 實例上定義的資料來源檢視的一部分,因此查詢可以使用 OPENQUERY 來擷取資料。 由於資料表中的資料行名稱與採礦模型中的資料行不同, 因此 ON 子句必須用來將資料表中的資料行對應至模型中的資料行。
此查詢會傳回資料表中每個人的名字和姓氏,以及布林值資料行,指出每個人是否可能購買自行車,其中 0 表示「可能不會購買自行車」,1 表示「可能會購買自行車」。 最後一個資料行包含預測結果的機率。
SELECT
t.[LastName],
t.[FirstName],
[TM Decision Tree].[Bike Buyer],
PredictProbability([Bike Buyer])
From
[TM Decision Tree]
PREDICTION JOIN
OPENQUERY([Adventure Works DW Multidimensional 2012],
'SELECT
[LastName],
[FirstName],
[MaritalStatus],
[Gender],
[YearlyIncome],
[TotalChildren],
[NumberChildrenAtHome],
[Education],
[Occupation],
[HouseOwnerFlag],
[NumberCarsOwned]
FROM
[dbo].[ProspectiveBuyer]
') AS t
ON
[TM Decision Tree].[Marital Status] = t.[MaritalStatus] AND
[TM Decision Tree].[Gender] = t.[Gender] AND
[TM Decision Tree].[Yearly Income] = t.[YearlyIncome] AND
[TM Decision Tree].[Total Children] = t.[TotalChildren] AND
[TM Decision Tree].[Number Children At Home] = t.[NumberChildrenAtHome] AND
[TM Decision Tree].[Education] = t.[Education] AND
[TM Decision Tree].[Occupation] = t.[Occupation] AND
[TM Decision Tree].[House Owner Flag] = t.[HouseOwnerFlag] AND
[TM Decision Tree].[Number Cars Owned] = t.[NumberCarsOwned]
若要將資料集限制為只有預測要購買自行車的客戶,然後依客戶名稱排序清單,您可以將 WHERE 子句和 ORDER BY 子句新增至上一個範例:
WHERE [BIKE Buyer]
ORDER BY [LastName] ASC
範例 3:預測關聯
下列範例示範如何使用從 Microsoft 關聯演算法建置的模型來建立預測。 關聯模型的預測可用來建議相關產品。 例如,下列查詢會傳回最有可能一起購買的三個產品:
山瓶籠
山輪胎管
Mountain-200
Predict (DMX) 函 式是多型的,可與所有模型類型搭配使用。 您可以使用 value3 做為 函式的引數,以限制查詢所傳回的專案數目。 NATURAL PREDICTION JOIN 子句後面的 SELECT 清單會提供值,以做為預測的輸入。
SELECT FLATTENED
PREDICT([Association].[v Assoc Seq Line Items], 3)
FROM
[Association]
NATURAL PREDICTION JOIN
(SELECT (SELECT 'Mountain Bottle Cage' AS [Model]
UNION SELECT 'Mountain Tire Tube' AS [Model]
UNION SELECT 'Mountain-200' AS [Model]) AS [v Assoc Seq Line Items ]) AS t
範例結果:
Expression.Model |
---|
HL Mountain Tire |
水瓶 |
芬德集 - 山 |
因為包含可預測屬性 [v Assoc Seq Line Items]
的資料行是 資料表資料行,所以查詢會傳回包含巢狀資料表的單一資料行。 根據預設,巢狀資料表資料行的名稱為 Expression
。 如果您的提供者不支援階層式資料列集,您可以使用 FLATTENED 關鍵字,如本範例所示,讓結果更容易檢視。
另請參閱
SELECT (DMX)
資料採礦延伸模組 (DMX) 資料定義語句
資料採礦延伸模組 (DMX) 資料動作陳述式
資料採礦延伸模組 (DMX) 陳述式參考
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應