Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:
SQL Server 2019 en eerder Analysis Services
Azure Analysis Services
Fabric/Power BI Premium
Belangrijk
Data mining werd verouderd verklaard in SQL Server 2017 Analysis Services en is nu stopgezet in SQL Server 2022 Analysis Services. Documentatie wordt niet bijgewerkt voor afgeschafte en stopgezette functies. Zie Analysis Services-compatibiliteit met eerdere versies voor meer informatie.
Wanneer u een query maakt op basis van een gegevensanalysemodel, kunt u een inhoudsquery maken, die details bevat over de patronen die in analyse zijn gedetecteerd, of u kunt een voorspellingsquery maken, die gebruikmaakt van de patronen in het model om voorspellingen te doen voor nieuwe gegevens. Een inhoudsquery voor een model voor beslissingsstructuren kan bijvoorbeeld statistieken geven over het aantal gevallen op elk niveau van de boomstructuur of de regels die onderscheid maken tussen gevallen. Een voorspellingsquery wijst het model ook toe aan nieuwe gegevens om aanbevelingen, classificaties enzovoort te genereren. U kunt ook metagegevens over het model ophalen met behulp van een query.
In deze sectie wordt uitgelegd hoe u query's maakt voor modellen die zijn gebaseerd op het algoritme Microsoft Decision Trees.
Inhoudsquery's
Modelparameters ophalen uit de gegevensanalyseschemarijset
Details over bomen in het model ophalen met behulp van DMX
Subbomen ophalen uit het model
Voorspellingsquery's
Voorspellingen retourneren met waarschijnlijkheden
Associaties van een Decision Trees-model voorspellen
Een regressieformule ophalen uit een Decision Trees-model
Informatie zoeken over een Decision Trees-model
Als u zinvolle query's wilt maken op de inhoud van een beslissingsstructuurmodel, moet u de structuur van de modelinhoud begrijpen en welke knooppunttypen welk soort informatie opslaan. Zie De inhoud van het miningmodel voor Decision Tree Models (Analysis Services - Data Mining) voor meer informatie.
Voorbeeldquery 1: Modelparameters ophalen uit de gegevensanalyse-schema-rijset
Door een query uit te voeren op de rijenset van het gegevensanalyseschema, kunt u metagegevens over het model vinden, bijvoorbeeld wanneer het model voor het laatst is verwerkt, de naam van de mijnbouwstructuur waarop het model is gebaseerd en de naam van de kolom die wordt gebruikt als het voorspelbare kenmerk. U kunt ook de parameters retourneren die zijn gebruikt toen het model voor het eerst werd gemaakt.
select MINING_PARAMETERS
from $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = 'TM_Decision Tree'
Voorbeeldresultaten:
MINING_PARAMETERS
COMPLEXITY_PENALTY=0,5, MAXIMUM_INPUT_ATTRIBUTES=255,MAXIMUM_OUTPUT_ATTRIBUTES=255,MINIMUM_SUPPORT=10,SCORE_METHOD=4,SPLIT_METHOD=3,FORCE_REGRESSOR=
Voorbeeldquery 2: Retourneert details over de modelinhoud met behulp van DMX
De volgende query retourneert enkele basisinformatie over de beslissingsstructuren die zijn gemaakt tijdens het bouwen van het model in de zelfstudie Basisgegevensanalyse. Elke boomstructuur wordt opgeslagen in een eigen knooppunt. Omdat dit model slechts één voorspelbare eigenschap bevat, is er alleen een boomknooppunt. Als u echter een koppelingsmodel maakt met behulp van het algoritme Decision Trees, zijn er mogelijk honderden bomen, één voor elk product.
Met deze query worden alle knooppunten van het type 2 geretourneerd. Dit zijn de knooppunten op het hoogste niveau van een boomstructuur die een bepaald voorspelbaar kenmerk vertegenwoordigt.
Opmerking
De kolom, CHILDREN_CARDINALITY, moet tussen vierkante haken staan om deze te onderscheiden van het gereserveerde MDX-trefwoord van dezelfde naam.
SELECT MODEL_NAME, NODE_NAME, NODE_CAPTION,
NODE_SUPPORT, [CHILDREN_CARDINALITY]
FROM TM_DecisionTrees.CONTENT
WHERE NODE_TYPE = 2
Voorbeeldresultaten:
| MODEL_NAME | NODE_NAME | NODE_CAPTION | NODE_SUPPORT | KINDEREN_CARDINALITEIT |
|---|---|---|---|---|
| TM_Beslissingsboom | 000000001 | All | 12939 | 5 |
Wat vertellen deze resultaten u? In een beslissingsboommodel geeft de kardinaliteit van een bepaald knooppunt aan hoeveel directe kinderen dat knooppunt heeft. De kardinaliteit voor dit knooppunt is 5, wat betekent dat het model de doelpopulatie van potentiële fietskopers in 5 subgroepen heeft verdeeld.
De volgende gerelateerde query retourneert de kinderen voor deze vijf subgroepen, samen met de verdeling van kenmerken en waarden in de kindknooppunten. Omdat statistieken zoals ondersteuning, waarschijnlijkheid en variantie worden opgeslagen in de geneste tabel, NODE_DISTRIBUTION, wordt in dit voorbeeld het FLATTENED trefwoord gebruikt om de geneste tabelkolommen uit te voeren.
Opmerking
De geneste tabelkolom, SUPPORT, moet tussen vierkante haken staan om deze te onderscheiden van het gereserveerde trefwoord van dezelfde naam.
SELECT FLATTENED NODE_NAME, NODE_CAPTION,
(SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE, [SUPPORT]
FROM NODE_DISTRIBUTION) AS t
FROM TM_DecisionTree.CONTENT
WHERE [PARENT_UNIQUE_NAME] = '000000001'
Voorbeeldresultaten:
| NODE_NAME | NODE_CAPTION | T.ATTRIBUTE_NAME | T.ATTRIBUTE_VALUE | ONDERSTEUNING |
|---|---|---|---|---|
| 00000000100 | Aantal auto's in bezit = 0 | Fietskoper | Vermist | 0 |
| 00000000100 | Aantal auto's in eigendom = 0 | Fietskoper | 0 | 1067 |
| 00000000100 | Aantal auto's in bezit = 0 | Fietskoper | 1 | 1875 |
| 00000000101 | Aantal auto's in bezit = 3 | Fietskoper | Vermist | 0 |
| 00000000101 | Aantal auto's in eigendom = 3 | Fietskoper | 0 | 678 |
| 00000000101 | Aantal auto's in bezit = 3 | Fietskoper | 1 | 473 |
Uit deze resultaten kunt u zien dat de klanten die een fiets hebben gekocht ([Fietskoper] = 1), 1067 klanten 0 auto's hadden en 473 klanten 3 auto's hadden.
Voorbeeldquery 3: Subtrees ophalen uit het model
Stel dat u meer wilt weten over de klanten die wel een fiets hebben gekocht. U kunt aanvullende details voor een van de substructuren bekijken met behulp van de functie IsDescendant (DMX) in de query, zoals wordt weergegeven in het volgende voorbeeld. De query retourneert het aantal fietskopers door bladknooppunten (NODE_TYPE = 4) op te halen uit de structuur die klanten bevat die ouder zijn dan 42 jaar. De query beperkt rijen uit de geneste tabel tot rijen waarbij Bike Buyer = 1.
SELECT FLATTENED NODE_NAME, NODE_CAPTION,NODE_TYPE,
(
SELECT [SUPPORT] FROM NODE_DISTRIBUTION WHERE ATTRIBUTE_NAME = 'Bike Buyer' AND ATTRIBUTE_VALUE = '1'
) AS t
FROM TM_DecisionTree.CONTENT
WHERE ISDESCENDANT('0000000010001')
AND NODE_TYPE = 4
Voorbeeldresultaten:
| NODE_NAME | NODE_CAPTION | t.SUPPORT |
|---|---|---|
| 000000001000100 | Jaarlijks inkomen >= 26000 en < 42000 | 266 |
| 00000000100010100 | Totaal aantal kinderen = 3 | 75 |
| 0000000010001010100 | Aantal kinderen thuis = 1 | 75 |
Voorspellingen doen met behulp van een Decision Trees-model
Omdat beslissingsstructuren kunnen worden gebruikt voor verschillende taken, waaronder classificatie, regressie en zelfs koppeling, wanneer u een voorspellingsquery maakt op een beslissingsstructuurmodel, hebt u veel opties beschikbaar. U moet het doel begrijpen waarvoor het model is gemaakt om de resultaten van de voorspelling te begrijpen. De volgende queryvoorbeelden illustreren drie verschillende scenario's:
Retourneert een voorspelling voor een classificatiemodel, samen met de waarschijnlijkheid dat de voorspelling juist is en filtert vervolgens de resultaten op de waarschijnlijkheid;
Een singleton-query maken om associaties te voorspellen;
Het ophalen van de regressieformule voor een deel van een beslissingsstructuur waarbij de relatie tussen de invoer en uitvoer lineair is.
Voorbeeldquery 4: Voorspellingen teruggeven met waarschijnlijkheidswaarden
In de volgende voorbeeldquery wordt het beslissingsstructuurmodel gebruikt dat is gemaakt in de zelfstudie Basisgegevensanalyse. De query geeft een nieuwe voorbeeldgegevensset door uit de tabel dbo.ProspectiveBuyers in AdventureWorks2012 DW, om te voorspellen welke van de klanten in de nieuwe gegevensset een fiets zullen kopen.
De query maakt gebruik van het voorspellingsfunctie PredictHistogram (DMX) dat een geneste tabel retourneert die nuttige informatie bevat over de waarschijnlijkheden die door het model zijn gedetecteerd. De laatste WHERE-component van de query filtert de resultaten om alleen klanten te retourneren die waarschijnlijk een fiets kopen, met een waarschijnlijkheid van meer dan 0%.
SELECT
[TM_DecisionTree].[Bike Buyer],
PredictHistogram([Bike Buyer]) as Results
From
[TM_DecisionTree]
PREDICTION JOIN
OPENQUERY([Adventure Works DW Multidimensional 2012],
'SELECT
[FirstName],
[LastName],
[MaritalStatus],
[Gender],
[YearlyIncome],
[TotalChildren],
[NumberChildrenAtHome],
[HouseOwnerFlag],
[NumberCarsOwned]
FROM
[dbo].[ProspectiveBuyer]
') AS t
ON
[TM_DecisionTree].[First Name] = t.[FirstName] AND
[TM_DecisionTree].[Last Name] = t.[LastName] AND
[TM_DecisionTree].[Marital Status] = t.[MaritalStatus] AND
[TM_DecisionTree].[Gender] = t.[Gender] AND
[TM_DecisionTree].[Yearly Income] = t.[YearlyIncome] AND
[TM_DecisionTree].[Total Children] = t.[TotalChildren] AND
[TM_DecisionTree].[Number Children At Home] = t.[NumberChildrenAtHome] AND
[TM_DecisionTree].[House Owner Flag] = t.[HouseOwnerFlag] AND
[TM_DecisionTree].[Number Cars Owned] = t.[NumberCarsOwned]
WHERE [Bike Buyer] = 1
AND PredictProbability([Bike Buyer]) >'.05'
SQL Server Analysis Services retourneert standaard geneste tabellen met het kolomlabel Expressie. U kunt dit label wijzigen door de kolom te aliasen die wordt geretourneerd. Als u dit doet, wordt de alias (in dit geval Resultaten) gebruikt als zowel de kolomkop als als de waarde in de geneste tabel. U moet de geneste tabel uitvouwen om de resultaten te kunnen zien.
Voorbeeldresultaten met Bike Buyer = 1:
| Fietskoper | $SUPPORT | $PROBABILITY | $ADJUSTEDPROBABILITY | $VARIANCE | $STDEV |
|---|---|---|---|---|---|
| 1 | 2540 | 0.634849242045644 | 0.013562168281562 | 0 | 0 |
| 0 | 1460 | 0.364984174579377 | 0.00661336932550915 | 0 | 0 |
| 0 | 0.000166583374979177 | 0.000166583374979177 | 0 | 0 |
Als uw provider geen hiërarchische rijensets ondersteunt, zoals deze hier worden weergegeven, kunt u het trefwoord PLATGEMAAKT in de query gebruiken om de resultaten te retourneren als een tabel die null-waarden bevat in plaats van de herhaalde kolomwaarden. Voor meer informatie, zie Geneste tabellen (Analysis Services - Data Mining) of Inzicht in de DMX Select-instructie.
Voorbeeldquery 5: Koppelingen van een Decision Trees-model voorspellen
De volgende voorbeeldquery is gebaseerd op de koppelingsanalysestructuur. Als u dit voorbeeld wilt volgen, kunt u een nieuw model toevoegen aan deze mijnbouwstructuur en Microsoft Decision Trees selecteren als het algoritme. Zie Les 3: Een marktmandscenario bouwen (Gegevensmijnbouw zelfstudie voor gevorderden) voor meer informatie over het maken van de associatieregelsstructuur.
De volgende voorbeeldquery is een singleton-query die u eenvoudig in SQL Server Data Tools kunt maken door velden te kiezen en vervolgens waarden voor deze velden te selecteren in een vervolgkeuzelijst.
SELECT PredictAssociation([DT_Association].[v Assoc Seq Line Items],3)
FROM
[DT_Association]
NATURAL PREDICTION JOIN
(SELECT (SELECT 'Patch kit' AS [Model]) AS [v Assoc Seq Line Items]) AS t
Verwachte resultaten:
| Model |
|---|
| Mountain-200 |
| Mountainbike binnenband |
| Toerbinnenband |
De resultaten vertellen u de drie beste producten die u kunt aanbevelen aan klanten die het Patch Kit-product hebben gekocht. U kunt ook meerdere producten opgeven als invoer wanneer u aanbevelingen doet, door waarden te typen of door het dialoogvenster Invoer van Singleton-query's te gebruiken en waarden toe te voegen of te verwijderen. In de volgende voorbeeldquery ziet u hoe de meerdere waarden worden opgegeven, waarop u een voorspelling kunt doen. Waarden worden verbonden met een UNION-component in de SELECT-instructie die de invoerwaarden definieert.
SELECT PredictAssociation([DT_Association].[v Assoc Seq Line Items],3)
From
[DT_Association]
NATURAL PREDICTION JOIN
(SELECT (SELECT 'Racing Socks' AS [Model]
UNION SELECT 'Women''s Mountain Shorts' AS [Model]) AS [v Assoc Seq Line Items]) AS t
Verwachte resultaten:
| Model |
|---|
| Lange Mouwen Logo Jersey |
| Mountain-400-W |
| Klassiek vest |
Voorbeeldquery 6: Een regressieformule ophalen uit een Decision Trees-model
Wanneer u een beslissingsstructuurmodel maakt dat een regressie op een doorlopend kenmerk bevat, kunt u de regressieformule gebruiken om voorspellingen te doen of kunt u informatie over de regressieformule extraheren. Zie Voorbeelden van lineaire regressiemodellen voor meer informatie over query's voor regressiemodellen.
Als een beslissingsstructurenmodel een combinatie van regressieknooppunten en knooppunten bevat die zijn gesplitst op discrete kenmerken of bereiken, kunt u een query maken die alleen het regressieknooppunt retourneert. De tabel NODE_DISTRIBUTION bevat de details van de regressieformule. In dit voorbeeld worden de kolommen platgemaakt en wordt de NODE_DISTRIBUTION tabel een alias voor eenvoudigere weergave. In dit model zijn echter geen regressors gevonden om inkomsten te relateren aan andere doorlopende kenmerken. In dergelijke gevallen retourneert SQL Server Analysis Services de gemiddelde waarde van het kenmerk en de totale variantie in het model voor dat kenmerk.
SELECT FLATTENED NODE_DISTRIBUTION AS t
FROM DT_Predict. CONTENT
WHERE NODE_TYPE = 25
Voorbeeldresultaten:
| t.ATTRIBUTE_NAME | t.ATTRIBUTE_VALUE | t.SUPPORT | t.PROBABILITEIT | t.VARIANTIE | t.VALUETYPE |
|---|---|---|---|---|---|
| Jaarlijks inkomen | Vermist | 0 | 0.000457142857142857 | 0 | 1 |
| Jaarlijks inkomen | 57220.8876687257 | 17484 | 0.999542857142857 | 1041275619.52776 | 3 |
| 57220.8876687257 | 0 | 0 | 1041216662.54387 | 11 |
Zie Mining Model Content for Linear Regression Models (Analysis Services - Data Mining) voor meer informatie over de waardetypen en de statistieken die worden gebruikt in regressiemodellen.
Lijst met voorspellingsfuncties
Alle Microsoft-algoritmen ondersteunen een algemene set functies. Het algoritme Microsoft Decision Trees ondersteunt echter de aanvullende functies die worden vermeld in de volgende tabel.
| Voorspellingsfunctie | Usage |
|---|---|
| IsDescendant (DMX) | Bepaalt of één knooppunt een onderliggend knooppunt is van een ander knooppunt in het model. |
| IsInNode (DMX) | Geeft aan of het opgegeven knooppunt de huidige case bevat. |
| PredictAdjustedProbability (DMX) | Geeft als resultaat de gewogen kans. |
| PredictAssociation (DMX) | Voorspelt het lidmaatschap van een associatieve gegevensset. |
| PredictHistogram (DMX) | Retourneert een tabel met waarden die zijn gerelateerd aan de huidige voorspelde waarde. |
| PredictNodeId (DMX) | Retourneert de Node_ID voor elke case. |
| PredictProbability (DMX) | Berekent de waarschijnlijkheid voor de voorspelde waarde. |
| PredictStdev (DMX) | Retourneert de voorspelde standaarddeviatie voor de opgegeven kolom. |
| PredictSupport (DMX) | Retourneert de ondersteuningswaarde voor een opgegeven status. |
| PredictVariance (DMX) | Retourneert de variantie van een opgegeven kolom. |
Zie Algemene voorspellingsfuncties (DMX) voor een lijst met functies die gebruikelijk zijn voor alle Microsoft-algoritmen. Zie Data Mining Extensions (DMX)-functieverwijzing voor de syntaxis van specifieke functies.
Zie ook
Query's voor gegevensanalyse
Microsoft Decision Trees Algorithm
Technische naslaginformatie over Microsoft Decision Trees Algorithm
Analysemodelinhoud voor Decision Tree-modellen (Analysis Services - Gegevensanalyse)