Condividi tramite


Esecuzione di una query su un modello Naive Bayes (Analysis Services - Data mining)

Quando si crea una query su un modello di data mining, è possibile creare una query contenuto, che fornisce dettagli sui criteri individuati durante l'analisi, o una query di stima, che utilizza i criteri presenti nel modello per eseguire stime relative ai nuovi dati. È inoltre possibile recuperare metadati relativi al modello tramite una query sul set di righe dello schema di data mining. In questa sezione viene illustrato come creare entrambi i tipi di query per i modelli basati sull'algoritmo Microsoft Naive Bayes.

Query contenuto

Recupero di metadati del modello tramite DMX

Recupero di un riepilogo di dati di training

Ricerca di ulteriori informazioni sugli attributi

Utilizzo di stored procedure di sistema

Query di stima

Stima dei risultati mediante una query singleton

Recupero di stime con valori di probabilità e supporto

Stima delle associazioni

Ricerca di informazioni su un modello Naive Bayes

Il contenuto di un modello Naive Bayes fornisce informazioni aggregate sulla distribuzione di valori nei dati di training. Tramite la creazione di query sui set di righe dello schema di data mining è possibile inoltre recuperare informazioni sui metadati del modello.

Esempio di query 1: Recupero di metadati del modello tramite DMX

Tramite l'esecuzione di una query sul set di righe dello schema di data mining, è possibile trovare i metadati per il modello. Tali dati possono includere la data di creazione del modello, la data dell'ultima elaborazione del modello, il nome della struttura di data mining su cui si basa il modello e il nome delle colonne utilizzate come attributo stimabile. È inoltre possibile restituire i parametri utilizzati durante la creazione del modello.

SELECT MODEL_CATALOG, MODEL_NAME, DATE_CREATED, LAST_PROCESSED,
SERVICE_NAME, PREDICTION_ENTITY, FILTER
FROM $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = 'TM_NaiveBayes_Filtered'

Risultati dell'esempio:

MODEL_CATALOG

AdventureWorks

MODEL_NAME

TM_NaiveBayes_Filtered

DATE_CREATED

3/1/2008 19:15

LAST_PROCESSED

3/2/2008 20:00

SERVICE_NAME

Microsoft_Naive_Bayes

PREDICTION_ENTITY

Bike Buyer,Yearly Income

FILTER

[Region] = 'Europe' OR [Region] = 'North America'

Il modello utilizzato per questo esempio si basa sul modello Naive Bayes creato nell'Esercitazione di base sul data mining, ma è stato modificato tramite l'aggiunta di un secondo attributo stimabile e l'applicazione di un filtro ai dati di training.

Torna all'inizio

Esempio di query 2: Recupero di un riepilogo di dati di training

In un modello Naive Bayes il nodo delle statistiche marginali archivia informazioni aggregate sulla distribuzione di valori nei dati di training. Questo riepilogo risulta particolarmente utile in quanto consente di non dover creare query SQL sui dati di training per trovare le stesse informazioni.

Nell'esempio seguente viene utilizzata una query sul contenuto DMX per recuperare i dati dal nodo (NODE_TYPE = 24). Poiché le statistiche vengono archiviate in una tabella nidificata, viene utilizzata la parola chiave FLATTENED per rendere più semplice la visualizzazione dei risultati.

SELECT FLATTENED MODEL_NAME,
(SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE, [SUPPORT], [PROBABILITY], VALUETYPE FROM NODE_DISTRIBUTION) AS t
FROM TM_NaiveBayes.CONTENT
WHERE NODE_TYPE = 26

Nota

È necessario includere i nomi delle colonne SUPPORT e PROBABILITY tra parentesi quadre per distinguerli dalle parole chiave riservate MDX degli stessi nomi.

Risultati parziali:

MODEL_NAME

t.ATTRIBUTE_NAME

t.ATTRIBUTE_VALUE

t.SUPPORT

t.PROBABILITY

t.VALUETYPE

TM_NaiveBayes

Bike Buyer

Missing

0

0

1

TM_NaiveBayes

Bike Buyer

0

8869

0.507263784

4

TM_NaiveBayes

Bike Buyer

1

8615

0.492736216

4

TM_NaiveBayes

Gender

Missing

0

0

1

TM_NaiveBayes

Gender

F

8656

0.495081217

4

TM_NaiveBayes

Gender

M

8828

0.504918783

4

Questi risultati indicano, ad esempio, il numero di case di training per ogni valore discreto (VALUETYPE = 4), insieme alla probabilità calcolata, adattata per i valori mancanti (VALUETYPE = 1).

Per una definizione dei valori forniti nella tabella NODE_DISTRIBUTION in un modello Naive Bayes, vedere Contenuto dei modelli di data mining per i modelli Naive Bayes (Analysis Services - Data mining). Per ulteriori informazioni sull'impatto dei valori mancanti sui calcoli di probabilità e supporto, vedere Valori mancanti (Analysis Services - Data mining).

Torna all'inizio

Esempio di query 3: Ricerca di ulteriori informazioni sugli attributi

Poiché un modello Naive Bayes spesso contiene informazioni complesse sulle relazioni fra attributi diversi, il modo più semplice per visualizzare tali relazioni consiste nell'utilizzare il Visualizzatore Microsoft Naive Bayes. È tuttavia possibile creare query DMX per restituire i dati.

Nell'esempio seguente viene illustrato come restituire informazioni dal modello su un particolare attributo, Region.

SELECT NODE_TYPE, NODE_CAPTION, 
NODE_PROBABILITY, NODE_SUPPORT, MSOLAP_NODE_SCORE
FROM TM_NaiveBayes.CONTENT
WHERE ATTRIBUTE_NAME = 'Region'

Questa query restituisce due tipi di nodi: il nodo che rappresenta l'attributo di input (NODE_TYPE = 10) e i nodi per ogni valore dell'attributo (NODE_TYPE = 11). La didascalia del nodo viene utilizzata per identificare il nodo, anziché il nome dello stesso, in quanto mostra sia il nome che il valore dell'attributo.

NODE_TYPE

NODE_CAPTION

NODE_PROBABILITY

NODE_SUPPORT

MSOLAP_NODE_SCORE

NODE_TYPE

10

Bike Buyer -> Region

1

17484

84.51555875

10

11

Bike Buyer -> Region = Missing

0

0

0

11

11

Bike Buyer -> Region = North America

0.508236102

8886

0

11

11

Bike Buyer -> Region = Pacific

0.193891558

3390

0

11

11

Bike Buyer -> Region = Europe

0.29787234

5208

0

11

Alcune delle colonne archiviate nei nodi corrispondono a quelle che è possibile ottenere dai nodi delle statistiche marginali, ad esempio il punteggio di probabilità e i valori di supporto del nodo. Tuttavia, MSOLAP_NODE_SCORE è un valore speciale fornito solo per i nodi dell'attributo di input e indica l'importanza relativa di questo attributo nel modello. Gran parte delle stesse informazioni è disponibile nel riquadro Rete di dipendenze, ma il visualizzatore non fornisce punteggi.

La query seguente restituisce i punteggi di importanza di tutti gli attributi nel modello:

SELECT NODE_CAPTION, MSOLAP_NODE_SCORE
FROM TM_NaiveBayes.CONTENT
WHERE NODE_TYPE = 10
ORDER BY MSOLAP_NODE_SCORE DESC

Risultati dell'esempio:

NODE_CAPTION

MSOLAP_NODE_SCORE

Bike Buyer -> Total Children

181.3654836

Bike Buyer -> Commute Distance

179.8419482

Bike Buyer -> English Education

156.9841928

Bike Buyer -> Number Children At Home

111.8122599

Bike Buyer -> Region

84.51555875

Bike Buyer -> Marital Status

23.13297354

Bike Buyer -> English Occupation

2.832069191

Esplorando il contenuto del modello in Microsoft Generic Content Tree Viewer, sarà possibile identificare le statistiche più interessanti. Alcuni degli esempi più semplici sono stati già illustrati in questa sede. Molto spesso diventa necessario eseguire più query o archiviare i risultati ed elaborarli nel client.

Torna all'inizio

Esempio di query 4: Utilizzo di stored procedure di sistema

Oltre a scrivere query contenuto personalizzate, è possibile utilizzare alcune stored procedure di sistema di Analysis Services per esplorare i risultati. Per utilizzare una stored procedure di sistema, aggiungere davanti al nome della stessa la parola chiave CALL:

CALL GetPredictableAttributes ('TM_NaiveBayes')

Risultati parziali:

ATTRIBUTE_NAME

NODE_UNIQUE_NAME

Bike Buyer

100000001

Nota

Queste stored procedure di sistema vengono utilizzate nelle comunicazioni interne tra il server di Analysis Services e il client e risultano utili solo durante lo sviluppo e il test di modelli di data mining. Le query destinate a un sistema di produzione, invece, devono essere scritte sempre tramite DMX.

Per ulteriori informazioni sulle stored procedure di sistema di Analysis Services, vedere Stored procedure di data mining (Analysis Services - Data mining).

Torna all'inizio

Utilizzo di un modello Naive Bayes per eseguire stime

L'algoritmo Microsoft Naive Bayes viene in genere utilizzato meno per la stima che per l'esplorazione di relazioni tra attributi di input e stimabili. Tuttavia, il modello supporta l'utilizzo di funzioni di stima sia per la stima che per l'associazione.

Esempio di query 5: Stima dei risultati mediante una query singleton

Nella query seguente viene utilizzata una query singleton per fornire un nuovo valore e stimare, in base al modello, se è probabile che un cliente con queste caratteristiche acquisti una bicicletta. Il modo più semplice per creare una query singleton in un modello di regressione consiste nell'utilizzare la finestra di dialogo Input query singleton. È ad esempio possibile compilare la query DMX seguente selezionando il modello TM_NaiveBayes, scegliendo Query singleton, quindi selezionando valori dagli elenchi a discesa per [Commute Distance] e Gender.

SELECT
  Predict([TM_NaiveBayes].[Bike Buyer])
FROM
  [TM_NaiveBayes]
NATURAL PREDICTION JOIN
(SELECT '5-10 Miles' AS [Commute Distance],
  'F' AS [Gender]) AS t

Risultati dell'esempio:

Expression

0

La funzione di stima restituisce il valore più probabile, in questo caso 0 che indica che è improbabile che questo tipo di cliente acquisti una bicicletta.

Torna all'inizio

Esempio di query 6: Recupero di stime con valori di probabilità e supporto

Oltre a stimare un risultato, spesso si desidera conoscere l'attendibilità della stima. Nella query seguente viene utilizzata la stessa query singleton dell'esempio precedente, ma viene aggiunta la funzione di stima PredictHistogram (DMX) per restituire una tabella nidificata contenente statistiche a supporto della stima.

SELECT
  Predict([TM_NaiveBayes].[Bike Buyer]),
  PredictHistogram([TM_NaiveBayes].[Bike Buyer])
FROM
  [TM_NaiveBayes]
NATURAL PREDICTION JOIN
(SELECT '5-10 Miles' AS [Commute Distance],
  'F' AS [Gender]) AS t

Risultati dell'esempio:

Bike Buyer

$SUPPORT

$PROBABILITY

$ADJUSTEDPROBABILITY

$VARIANCE

$STDEV

0

10161.5714

0.581192599

0.010530981

0

0

1

7321.428768

0.418750215

0.008945684

0

0

  

0.999828444

5.72E-05

5.72E-05

0

0

La riga finale nella tabella mostra le modifiche apportate a supporto e probabilità per il valore mancante. I valori della varianza e della deviazione standard sono sempre 0, perché i modelli Naive Bayes non possono modellare valori continui.

Torna all'inizio

Esempio di query 7: Stima delle associazioni

L'algoritmo Microsoft Naive Bayes può essere utilizzato per l'analisi di associazione, se la struttura di data mining contiene una tabella nidificata con l'attributo stimabile come chiave. È possibile, ad esempio, compilare un modello Naive Bayes tramite la struttura di data mining creata nella Lezione 3: Creazione di uno scenario Market Basket (Esercitazione intermedia sul data mining) dell'esercitazione di data mining. Il modello utilizzato in questo esempio è stato modificato per aggiungere informazioni sul reddito e sulla regione del cliente nella tabella del case.

Nell'esempio di query seguente viene illustrata una query singleton che stima prodotti relativi ad acquisti del prodotto, 'Road Tire Tube'. È possibile utilizzare queste informazioni per consigliare prodotti a un tipo specifico di cliente.

SELECT   PredictAssociation([Association].[v Assoc Seq Line Items])
FROM [Association_NB]
NATURAL PREDICTION JOIN
(SELECT 'High' AS [Income Group],
  'Europe' AS [Region],
  (SELECT 'Road Tire Tube' AS [Model]) 
AS [v Assoc Seq Line Items]) 
AS t

Risultati parziali:

Model

Women's Mountain Shorts

Water Bottle

Touring-3000

Touring-2000

Touring-1000

Torna all'inizio

Elenco di funzioni

Tutti gli algoritmi Microsoft supportano un set comune di funzioni. L'algoritmo Microsoft Naive Bayes supporta tuttavia le funzioni aggiuntive elencate nella tabella seguente.

Per un elenco delle funzioni comuni a tutti gli algoritmi Microsoft, vedere Guida di riferimento agli algoritmi (Analysis Services - Data mining). Per informazioni sulla sintassi di funzioni specifiche, vedere Guida di riferimento alle funzioni DMX (Data Mining Extensions).