Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för: SQL Server Analysis Services
Använder en miningmodell för att förutsäga tillstånden för kolumner i en extern datakälla. PREDICTION JOIN-satsen matchar varje fall från källfrågan till modellen.
Syntax
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]]
Arguments
n
Valfritt. Ett heltal som specificerar hur många rader som ska returneras.
Välj uttryckslista
En kommaseparerad lista över kolumnidentifierare och uttryck som härstammar från gruvmodellen.
Modell
En modellidentifierare.
Val av bytare
Ett inbäddat select-uttalande.
Källdatafråga
Källfrågan.
Gå med i kartlistan
Valfritt. Ett logiskt uttryck som jämför kolumner från modellen med kolumner från källfrågan.
Villkorsuttryck
Valfritt. Ett villkor för att begränsa de värden som returneras från kolumnlistan.
expression
Valfritt. Ett uttryck som returnerar ett skalärt värde.
Remarks
ON-klausulen definierar mappningen mellan kolumnerna från källfrågan och kolumnerna från miningmodellen. Denna mappning används för att styra kolumner från källfrågan till kolumner i miningmodellen så att kolumnerna kan användas som indata för att skapa förutsägelserna. Kolumner i <join-mappningslistan> är relaterade genom att använda ett likhetstecken (=), som visas i följande exempel:
[MiningModel].ColumnA = [source data query].Column1 AND
[MiningModel].ColumnB = [source data query].Column2 AND
...
Om du binder en nästlad tabell i ON-klausulen, se till att du binder nyckelkolumnen med eventuella icke-nyckelkolumner så att algoritmen korrekt kan identifiera vilket fall posten för den nästlade kolumnen tillhör.
Källfrågan för prediktionsanslutningen kan antingen vara en tabell- eller en singleton-fråga.
Du kan specificera prediktionsfunktioner som inte returnerar ett tabelluttryck i <select-expression-listan> och villkorsuttrycket><.
NATURAL PREDICTION JOIN mappar automatiskt ihop kolumnnamn från källfrågan som matchar kolumnnamn i modellen. Om du använder NATURAL PREDICTION kan du utelämna ON-klausulen.
WHERE-villkoret kan endast tillämpas på förutsägbara kolumner eller relaterade kolumner.
ORDER by-klausulen kan endast acceptera en enda kolumn som argument; det vill säga, du kan inte sortera på mer än en kolumn.
Exempel 1: Singleton-fråga
Följande exempel visar hur man skapar en fråga för att förutsäga om en specifik person kommer att köpa en cykel i realtid. I denna fråga lagras inte data i en tabell eller annan datakälla, utan matas istället direkt in i frågan. Personen i sökningen har följande egenskaper:
35 år gammal
Äger ett hus
Äger två bilar
Har två barn som bor hemma
Med hjälp av TM Decision Tree mining-modellen och de kända egenskaperna hos ämnet, returnerar frågan ett booleskt värde som beskriver om personen köpte cykeln och en uppsättning tabellvärden, returnerade av PredictHistogram (DMX)- funktionen, som beskriver hur förutsägelsen gjordes.
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
Exempel 2: Att använda OPENQUERY
Följande exempel visar hur man skapar en batch-prediktionsfråga genom att använda en lista över potentiella kunder lagrade i en extern datamängd. Eftersom tabellen är en del av en datakällvy som har definierats på en instans av Analysis Services, kan frågan använda OPENQUERY för att hämta datan. Eftersom namnen på kolumnerna i tabellen skiljer sig från de i miningmodellen måste ON-klausulen användas för att mappa kolumnerna i tabellen till kolumnerna i modellen.
Sökningen ger för- och efternamn på varje person i tabellen, tillsammans med en boolesk kolumn som visar om varje person sannolikt kommer att köpa en cykel, där 0 betyder "kommer troligen inte köpa en cykel" och 1 betyder "kommer troligen att köpa en cykel". Den sista kolumnen innehåller sannolikheten för det förutsagda resultatet.
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]
För att begränsa datamängden till endast de kunder som förväntas köpa en cykel, och sedan sortera listan efter kundnamn, kan du lägga till en WHERE-klausul och en ORDER BY-klausul till föregående exempel:
WHERE [BIKE Buyer]
ORDER BY [LastName] ASC
Exempel 3: Förutsägelse av associationer
Följande exempel visar hur man skapar en förutsägelse genom att använda en modell som är byggd på Microsoft Associations algoritm. Förutsägelser i en associationsmodell kan användas för att rekommendera relaterade produkter. Till exempel returnerar följande fråga de tre produkter som mest sannolikt kommer att köpas tillsammans:
Flaskhållare för mountainbike
Mountain Tire Tube
Berg-200
Predict (DMX)-funktionen är polymorf och kan användas med alla modelltyper. Du använder värde3 som ett argument till funktionen för att begränsa antalet objekt som returneras av frågan. SELECT-listan som följer efter NATURAL PREDICTION JOIN-klausulen tillhandahåller värdena som används som indata för prediktion.
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
Exempel på resultat:
| Expression.Model |
|---|
| HL Mountain Tire |
| Vattenflaska |
| Fender Set - Berg |
Eftersom kolumnen som innehåller det förutsägbara attributet, [v Assoc Seq Line Items], är en tabellkolumn, returnerar frågan en enda kolumn som innehåller en nästlad tabell. Som standard heter Expressionkolumnen för den nästlade tabellen . Om din leverantör inte stödjer hierarkiska raduppsättningar kan du använda nyckelordet FLATTENED som visas i detta exempel för att göra resultaten lättare att se.