Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Quando si crea una query su un modello di data mining, è possibile recuperare i metadati sul modello o creare una query contenuto che fornisce informazioni dettagliate sui modelli individuati nell'analisi. In alternativa, è possibile creare una query di stima, che usa i modelli nel modello per eseguire stime per i nuovi dati. Ogni tipo di query fornirà informazioni diverse. Ad esempio, una query sul contenuto potrebbe fornire dettagli aggiuntivi sui cluster trovati, mentre una query di stima potrebbe indicare in quale cluster appartiene un nuovo punto dati.
Questa sezione illustra come creare query per i modelli basati sull'algoritmo Microsoft Clustering.
Query sul contenuto
Recupero dei metadati del modello tramite DMX
Recupero dei metadati del modello dal set di righe dello schema
Restituzione di un cluster o di un elenco di cluster
Restituzione di attributi per un cluster
Restituzione di un profilo cluster utilizzando le stored procedure di sistema
Ricerca di fattori discriminanti per un cluster
Restituzione di casi che appartengono a un cluster
Query di previsione
Stima dei risultati da un modello di clustering
Determinazione dell'appartenenza al cluster
Restituzione di tutti i cluster possibili con probabilità e distanza
Ricerca di informazioni sul modello
Tutti i modelli di data mining espongono il contenuto appreso dall'algoritmo in base a uno schema standardizzato, il set di righe dello schema del modello di data mining. È possibile creare query sul set di righe dello schema del modello di data mining usando istruzioni DMX (Data Mining Extension). In SQL Server 2014 è anche possibile eseguire query sui set di righe dello schema direttamente come tabelle di sistema.
Esempio di query 1: Recupero dei metadati del modello tramite DMX
La query seguente restituisce i metadati di base relativi al modello di clustering, TM_Clustering, creato nell'esercitazione di base sul data mining. I metadati disponibili nel nodo padre di un modello di clustering includono il nome del modello, il database in cui è archiviato il modello e il numero di nodi figlio nel modello. Questa query usa una query sul contenuto DMX per recuperare i metadati dal nodo padre del modello:
SELECT MODEL_CATALOG, MODEL_NAME, NODE_CAPTION,
NODE_SUPPORT, [CHILDREN_CARDINALITY], NODE_DESCRIPTION
FROM TM_Clustering.CONTENT
WHERE NODE_TYPE = 1
Annotazioni
È necessario racchiudere il nome della colonna, CHILDREN_CARDINALITY, tra parentesi quadre per distinguerlo dalla parola chiave riservata MDX (Multidimensional Expressions) con lo stesso nome.
Risultati dell'esempio:
| Catalogo dei Modelli | TM_Clustering |
| MODEL_NAME | Adventure Works DW |
| NODE_CAPTION | Modello di cluster |
| NODE_SUPPORT | 12939 |
| CARDINALITÀ_BAMBINI | 10 |
| DESCRIZIONE_NODO | Tutti |
Per una definizione del significato di queste colonne in un modello di clustering, vedere Contenuto del modello di data mining per i modelli di clustering (Analysis Services - Data mining).
Esempio di query 2: recupero dei metadati del modello dal set di righe dello schema
Eseguendo una query sul set di righe dello schema di data mining, è possibile trovare le stesse informazioni restituite in una query sul contenuto DMX. Tuttavia, il set di righe dello schema fornisce alcune colonne aggiuntive. Questi includono i parametri usati al momento della creazione del modello, la data e l'ora dell'ultima elaborazione del modello e il proprietario del modello.
Nell'esempio seguente viene restituita la data di creazione, modifica e ultima elaborazione del modello, insieme ai parametri di clustering usati per compilare il modello e le dimensioni del set di training. Queste informazioni possono essere utili per documentare il modello o per determinare quali opzioni di clustering sono state usate per creare un modello esistente.
SELECT MODEL_NAME, DATE_CREATED, LAST_PROCESSED, PREDICTION_ENTITY, MINING_PARAMETERS
from $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = 'TM_Clustering'
Risultati dell'esempio:
| MODEL_NAME | TM_Clustering |
| DATA_CREAZIONE | 12/10/2007 19:42:51 |
| ULTIMO_PROCESSATO | 12/10/2007 08:09:54 PM |
| PREDICTION_ENTITY | Acquirente di biciclette |
| PARAMETRI_MINERARI | CLUSTER_COUNT=10, CLUSTER_SEED=0, CLUSTERING_METHOD=1, MAXIMUM_INPUT_ATTRIBUTES=255, MAXIMUM_STATES=100, MINIMUM_SUPPORT=1, MODELLING_CARDINALITY=10, SAMPLE_SIZE=50000, STOPPING_TOLERANCE=10 |
Ricerca di informazioni sui cluster
Le query di contenuto più utili sui modelli di clustering restituiscono in genere lo stesso tipo di informazioni che è possibile esplorare usando il Visualizzatore cluster. Sono inclusi i profili del cluster, le caratteristiche del cluster e la discriminazione del cluster. In questa sezione vengono forniti esempi di query che recuperano queste informazioni.
Query di esempio 3: Restituzione di un cluster o elenco di cluster
Poiché tutti i cluster hanno un tipo di nodo pari a 5, è possibile recuperare facilmente un elenco dei cluster eseguendo una query sul contenuto del modello solo per i nodi di tale tipo. È anche possibile filtrare i nodi restituiti dalla probabilità o dal supporto, come illustrato in questo esempio.
SELECT NODE_NAME, NODE_CAPTION ,NODE_SUPPORT, NODE_DESCRIPTION
FROM TM_Clustering.CONTENT
WHERE NODE_TYPE = 5 AND NODE_SUPPORT > 1000
Risultati dell'esempio:
| NOME_DEL_NODO | 002 |
| NODE_CAPTION | Cluster 2 |
| NODE_SUPPORT | 1649 |
| DESCRIZIONE_NODO | Istruzione Inglese=Laurea Magistrale , 32 <=Età <=48 , Numero di auto possedute=0 , 35964.0771121808 <=Reddito Annuale <=97407.7163393957 , Occupazione Inglese=Professionista , Distanza Pendolare=2-5 chilometri , Regione=Nord America , Acquirente di bici=1 , Numero di bambini a casa=0 , Numero di auto possedute=1 , Distanza Pendolare=0-1 miglia , Istruzione Inglese=Laurea Triennale , Numero totale di bambini=1 , Numero di bambini a casa=2 , Occupazione Inglese=Manuale Qualificato , Stato Civile=S , Numero totale di bambini=0 , Flag Proprietario Casa=0 , Genere=F , Numero totale di bambini=2 , Regione=Pacifico |
Gli attributi che definiscono il cluster sono disponibili in due colonne nel set di righe dello schema di data mining.
La colonna NODE_DESCRIPTION contiene un elenco delimitato da virgole di attributi. Si noti che l'elenco di attributi potrebbe essere abbreviato a scopo di visualizzazione.
La tabella nidificata nella colonna NODE_DISTRIBUTION contiene l'elenco completo degli attributi relativi al cluster. Se il client non supporta set di righe gerarchici, è possibile restituire la tabella nidificata aggiungendo la parola chiave FLATTENED prima dell'elenco di colonne SELECT. Per altre informazioni sull'uso della parola chiave FLATTENED, vedere SELECT FROM <model>.CONTENT (DMX).
Query di esempio 4: Restituzione di attributi per un cluster
Per ogni cluster, il Visualizzatore cluster visualizza un profilo che elenca gli attributi e i relativi valori. Il visualizzatore visualizza anche un istogramma che mostra la distribuzione dei valori per l'intera popolazione dei casi nel modello. Se stai esplorando il modello nel visualizzatore, puoi facilmente copiare l'istogramma dalla Mining Legend e incollarlo in Excel o in un documento di Word. È anche possibile usare il riquadro Caratteristiche cluster del visualizzatore per confrontare graficamente gli attributi di cluster diversi.
Tuttavia, se è necessario ottenere valori per più cluster alla volta, è più facile eseguire query sul modello. Ad esempio, quando si esplora il modello, è possibile notare che i primi due cluster differiscono rispetto a un attributo, Number Cars Owned. Di conseguenza, si vogliono estrarre i valori per ogni cluster.
SELECT TOP 2 NODE_NAME,
(SELECT ATTRIBUTE_VALUE, [PROBABILITY] FROM NODE_DISTRIBUTION WHERE ATTRIBUTE_NAME = 'Number Cars Owned')
AS t
FROM [TM_Clustering].CONTENT
WHERE NODE_TYPE = 5
La prima riga del codice specifica che si desiderano solo i primi due cluster.
Annotazioni
Per impostazione predefinita, i cluster vengono ordinati in base al supporto. Pertanto, la colonna NODE_SUPPORT può essere omessa.
La seconda riga del codice aggiunge un'istruzione sub-select che restituisce solo determinate colonne dalla colonna della tabella annidata. Inoltre, limita le righe dalla tabella nidificata alle righe correlate all'attributo di destinazione, Number Cars Owned. Per semplificare la visualizzazione, la tabella nidificata viene aliasata.
Annotazioni
La colonna della tabella nidificata, PROBABILITY, deve essere racchiusa tra parentesi quadre perché è anche il nome di una parola chiave MDX riservata.
Risultati dell'esempio:
| NOME_DEL_NODO | T.ATTRIBUTE_VALUE | T.PROBABILITY |
|---|---|---|
| 001 | 2 | 0.829207754 |
| 001 | 1 | 0.109354156 |
| 001 | 3 | 0.034481552 |
| 001 | 4 | 0.013503302 |
| 001 | 0 | 0.013453236 |
| 001 | Mancante | 0 |
| 002 | 0 | 0.576980023 |
| 002 | 1 | 0.406623939 |
| 002 | 2 | 0.016380082 |
| 002 | 3 | 1.60E-05 |
| 002 | 4 | 0 |
| 002 | Mancante | 0 |
Query di esempio 5: Restituire un profilo di cluster usando le stored procedure di sistema
Come scorciatoia, invece di scrivere query personalizzate tramite DMX, è anche possibile chiamare le stored procedure di sistema usate da Analysis Services per lavorare con i cluster. Nell'esempio seguente viene illustrato come utilizzare le procedure interne memorizzate per restituire il profilo per un cluster con l'ID 002.
CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterProfiles('TM_Clustering", '002',0.0005
Analogamente, è possibile usare una stored procedure di sistema per restituire le caratteristiche di un cluster specifico, come illustrato nell'esempio seguente:
CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterCharacteristics('TM_Clustering", '009',0.0005
Risultati dell'esempio:
| Attributi | Valori | Frequenza | Assistenza |
|---|---|---|---|
| Numero bambini a casa | 0 | 0.999999829076798 | 899 |
| Area geografica | Nord America | 0.999852875241508 | 899 |
| Totale figli | 0 | 0.993860958572323 | 893 |
Annotazioni
Le stored procedure del sistema di data mining sono destinate all'uso interno e Microsoft si riserva il diritto di modificarle in base alle esigenze. Per l'uso in produzione, è consigliabile creare query usando DMX, AMO o XMLA.
Query di esempio 6: Trovare fattori discriminanti per un cluster
La scheda Discriminazione Cluster del Visualizzatore Cluster consente di confrontare facilmente un cluster con un altro cluster, oppure di confrontare un cluster con tutti gli altri casi (cioè il complemento del cluster).
Tuttavia, la creazione di query per restituire queste informazioni può essere complessa e potrebbe essere necessaria un'elaborazione aggiuntiva nel client per archiviare i risultati temporanei e confrontare i risultati di due o più query. Come scorciatoia, è possibile usare le stored procedure di sistema.
La query seguente restituisce una singola tabella che indica i principali fattori di discriminazione tra i due cluster con ID nodo 009 e 007. Gli attributi con valori positivi favoriscono il cluster 009, mentre gli attributi con valori negativi prediligeno il cluster 007.
CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterDiscrimination('TM_Clustering','009','007',0.0005,true)
Risultati dell'esempio:
| Attributi | Valori | Punteggio |
|---|---|---|
| Area geografica | Nord America | 100 |
| Occupazione inglese | Lavoro manuale qualificato | 94.9003803898654 |
| Area geografica | Europa | -72.5041051379789 |
| Occupazione inglese | Manuale | -69.6503163202722 |
Si tratta delle stesse informazioni presentate nel grafico del visualizzatore Cluster Discrimination se si seleziona Cluster 9 nel primo elenco a discesa e Cluster 7 dal secondo elenco a discesa. Per confrontare il cluster 9 con il relativo complemento, usare la stringa vuota nel secondo parametro, come illustrato nell'esempio seguente:
CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterDiscrimination('TM_Clustering','009','',0.0005,true)
Annotazioni
Le stored procedure del sistema di data mining sono destinate all'uso interno e Microsoft si riserva il diritto di modificarle in base alle esigenze. Per l'uso in produzione, è consigliabile creare query usando DMX, AMO o XMLA.
Esempio di query 7: restituzione di casi che appartengono a un cluster
Se il tracciamento dettagliato è stato abilitato nel modello di data mining, è possibile creare query che restituiscono informazioni dettagliate sui casi utilizzati nel modello. Inoltre, se il drill-through è stato abilitato nella struttura di data mining, è possibile includere colonne dalla struttura sottostante tramite la funzione StructureColumn (DMX).
Nell'esempio seguente vengono restituite due colonne utilizzate nel modello, Age e Region e un'altra colonna, First Name, che non è stata utilizzata nel modello. La query restituisce solo i case classificati nel cluster 1.
SELECT [Age], [Region], StructureColumn('First Name')
FROM [TM_Clustering].CASES
WHERE IsInNode('001')
Per restituire i case appartenenti a un cluster, è necessario conoscere l'ID del cluster. È possibile ottenere l'ID del cluster esplorando il modello in uno dei visualizzatori. In alternativa, è possibile rinominare un cluster per un riferimento più semplice, dopo di che è possibile usare il nome al posto di un numero ID. Tuttavia, tenere presente che i nomi assegnati a un cluster andranno persi se il modello viene rielaborato.
Esecuzione di stime tramite il modello
Anche se il clustering viene in genere usato per descrivere e comprendere i dati, l'implementazione Di Microsoft consente anche di eseguire stime sull'appartenenza al cluster e restituire le probabilità associate alla stima. Questa sezione fornisce esempi di come creare query di stima sui modelli di clustering. È possibile eseguire stime per più casi, specificando un'origine dati tabulare oppure specificando nuovi valori alla volta creando una query singleton. Per maggiore chiarezza, gli esempi in questa sezione sono tutte query singleton.
Per altre informazioni su come creare query di stima tramite DMX, vedere Interfacce di query di data mining.
Query di esempio 8: Stima dei risultati da un modello di clustering
Se il modello di clustering creato contiene un attributo stimabile, è possibile usare il modello per eseguire stime sui risultati. Tuttavia, il modello gestisce l'attributo stimabile in modo diverso a seconda che la colonna stimabile sia impostata su Predict o PredictOnly. Se si imposta l'utilizzo della colonna su Predict, i valori per tale attributo vengono aggiunti al modello di clustering e vengono visualizzati come attributi nel modello finito. Tuttavia, se si imposta l'utilizzo della colonna su PredictOnly, i valori non vengono usati per creare cluster. Al termine della modalità, invece, l'algoritmo di clustering crea nuovi valori per l'attributo PredictOnly in base ai cluster a cui appartiene ogni caso.
La query seguente fornisce un singolo nuovo caso al modello, in cui le uniche informazioni sul caso sono l'età e il sesso. L'istruzione SELECT specifica la coppia di attributi/valore stimabile a cui si è interessati e la funzione PredictProbability (DMX) indica la probabilità che un caso con tali attributi avrà il risultato di destinazione.
SELECT
[TM_Clustering].[Bike Buyer], PredictProbability([Bike Buyer],1)
FROM
[TM_Clustering]
NATURAL PREDICTION JOIN
(SELECT 40 AS [Age],
'F' AS [Gender]) AS t
Esempio di risultati quando l'utilizzo è impostato su Predict:
| Acquirente di biciclette | Espressione |
|---|---|
| 1 | 0.592924735740338 |
Esempio di risultati quando l'utilizzo è impostato su PredictOnly e il modello viene rielaborato:
| Acquirente di biciclette | Espressione |
|---|---|
| 1 | 0.55843544003102 |
In questo esempio la differenza nel modello non è significativa. Tuttavia, a volte può essere importante rilevare le differenze tra la distribuzione effettiva dei valori e le previsioni del modello. La funzione PredictCaseLikelihood (DMX) è utile in questo scenario, perché indica la probabilità che si verifichi un caso, dato il modello.
Il numero restituito dalla funzione PredictCaseLikelihood è una probabilità e pertanto è sempre compreso tra 0 e 1, con un valore pari a 5 che rappresenta il risultato casuale. Pertanto, un punteggio minore di 5 indica che il caso stimato è improbabile, dato il modello e un punteggio superiore a 5 indica che il caso stimato è più probabile che non si adatti al modello.
Ad esempio, la query seguente restituisce due valori che caratterizzano la probabilità di un nuovo caso di esempio. Il valore non normalizzato rappresenta la probabilità data il modello corrente. Quando si usa la parola chiave NORMALIZED, il punteggio di probabilità restituito dalla funzione viene regolato dividendo "probabilità con il modello" per "probabilità senza il modello".
SELECT
PredictCaseLikelihood(NORMALIZED) AS [NormalizedValue], PredictCaseLikelihood(NONNORMALIZED) AS [NonNormalizedValue]
FROM
[TM_Clustering_PredictOnly]
NATURAL PREDICTION JOIN
(SELECT 40 AS [Age],
'F' AS [Gender]) AS t
Risultati dell'esempio:
| Valore Normalizzato | ValoreNonNormalizzato |
|---|---|
| 5.56438372679893E-11 | 8.65459953145182E-68 |
Si noti che i numeri in questi risultati sono espressi nella notazione scientifica.
Query di esempio 9: Determinazione dell'appartenenza al cluster
Questo esempio usa la funzione Cluster (DMX) per restituire il cluster a cui appartiene il nuovo caso e usa la funzione ClusterProbability (DMX) per restituire la probabilità di appartenenza a tale cluster.
SELECT Cluster(), ClusterProbability()
FROM
[TM_Clustering]
NATURAL PREDICTION JOIN
(SELECT 40 AS [Age],
'F' AS [Gender],
'S' AS [Marital Status]) AS t
Risultati dell'esempio:
| $CLUSTER | Espressione |
|---|---|
| Cluster 2 | 0.397918596951617 |
Nota Per impostazione predefinita, la ClusterProbability funzione restituisce la probabilità del cluster più probabile. Tuttavia, è possibile specificare un cluster diverso usando la sintassi ClusterProbability('cluster name'). In questo caso, tenere presente che i risultati di ogni funzione di stima sono indipendenti dagli altri risultati. Di conseguenza, il punteggio di probabilità nella seconda colonna può fare riferimento a un cluster diverso rispetto al cluster denominato nella prima colonna.
Query di esempio 10: restituzione di tutti i cluster possibili con probabilità e distanza
Nell'esempio precedente il punteggio di probabilità non era molto elevato. Per determinare se esiste un cluster migliore, è possibile usare la funzione PredictHistogram (DMX) insieme alla funzione Cluster (DMX) per restituire una tabella nidificata che include tutti i cluster possibili, insieme alla probabilità che il nuovo case appartenga a ogni cluster. La parola chiave FLATTENED viene usata per modificare il set di righe gerarchico in una tabella flat per semplificare la visualizzazione.
SELECT FLATTENED PredictHistogram(Cluster())
From
[TM_Clustering]
NATURAL PREDICTION JOIN
(SELECT 40 AS [Age],
'F' AS [Gender],
'S' AS [Marital Status])
| Espressione.$CLUSTER | Espressione.$DISTANCE | Expression.$PROBABILITY |
|---|---|---|
| Cluster 2 | 0.602081403048383 | 0.397918596951617 |
| Cluster 10 | 0.719691686785675 | 0.280308313214325 |
| Cluster 4 | 0.867772590378791 | 0.132227409621209 |
| Cluster 5 | 0.931039872200985 | 0.0689601277990149 |
| Cluster 3 | 0.942359230072167 | 0.0576407699278328 |
| Cluster 6 | 0.958973668972756 | 0.0410263310272437 |
| Cluster 7 | 0.979081275926724 | 0.0209187240732763 |
| Cluster 1 | 0.999169044818624 | 0.000830955181376364 |
| Cluster 9 | 0.999831227795894 | 0.000168772204105754 |
| Cluster 8 | 1 | 0 |
Per impostazione predefinita, i risultati vengono classificati in base alla probabilità. I risultati indicano che, anche se la probabilità per il cluster 2 è piuttosto bassa, cluster 2 è ancora la soluzione migliore per il nuovo punto dati.
Nota La colonna aggiuntiva, $DISTANCE, rappresenta la distanza tra il punto dati e il cluster. Per impostazione predefinita, Microsoft Clustering Algorithm usa clustering EM scalabile, che assegna più cluster a ogni punto dati e classifica i possibili cluster. Tuttavia, se si crea il modello di clustering usando l'algoritmo K-means, è possibile assegnare un solo cluster a ogni punto dati e questa query restituirà una sola riga. Comprendere queste differenze è necessario per interpretare i risultati della funzione PredictCaseLikelihood (DMX). Per altre informazioni sulle differenze tra clustering EM e K-means, vedere Microsoft Clustering Algorithm Technical Reference (Informazioni tecniche sull'algoritmo Microsoft Clustering).
Elenco funzioni
Tutti gli algoritmi Microsoft supportano un set comune di funzioni. Tuttavia, i modelli compilati usando l'algoritmo Microsoft Clustering supportano le funzioni aggiuntive elencate nella tabella seguente.
| Funzione di Predizione | Uso |
| Cluster (DMX) | Restituisce il cluster che è più probabile che contenga il caso di input. |
| ClusterDistance (DMX) | Restituisce la distanza del case di input dal cluster specificato o, se non viene specificato alcun cluster, la distanza del case di input dal cluster più probabile. Restituisce la probabilità che il case di input appartenga al cluster specificato. |
| ClusterProbability (DMX) | Restituisce la probabilità che il case di input appartenga al cluster specificato. |
| IsDescendant (DMX) | Determina se un nodo è figlio di un altro nodo nel modello. |
| IsInNode (DMX) | Indica se il nodo specificato contiene il caso corrente. |
| PredictAdjustedProbability (DMX) | Restituisce la probabilità ponderata. |
| PredictAssociation (DMX) | Stima l'appartenenza a un set di dati associativo. |
| PredictCaseLikelihood (DMX) | Restituisce la probabilità che un case di input si adatti al modello esistente. |
| PredictHistogram (DMX) | Restituisce una tabella di valori correlati al valore stimato corrente. |
| PredictNodeId (DMX) | Restituisce il Node_ID per ogni caso. |
| PredictProbability (DMX) | Restituisce la probabilità per il valore stimato. |
| PredictStdev (DMX) | Restituisce la deviazione standard stimata per la colonna specificata. |
| PredictSupport (DMX) | Restituisce il valore di supporto per uno stato specificato. |
| PredictVariance (DMX) | Restituisce la varianza di una colonna specificata. |
Per la sintassi di funzioni specifiche, vedere Informazioni di riferimento sulle funzioni DMX (Data Mining Extensions).
Vedere anche
Query di estrazione dei dati
Riferimento tecnico per l'algoritmo Microsoft Clustering
Algoritmo Microsoft Clustering