Condividi tramite


Esempi di query per il modello di rete neurale

Si applica a: SQL Server 2019 e versioni precedenti di Analysis Services Azure Analysis Services Fabric/Power BI Premium

Importante

Il data mining è stato deprecato in SQL Server 2017 Analysis Services e ora è stato sospeso in SQL Server 2022 Analysis Services. La documentazione non viene aggiornata per le funzionalità deprecate e non più disponibili. Per altre informazioni, vedere Compatibilità con le versioni precedenti di Analysis Services.

Quando si crea una query su un modello di data mining, è possibile creare una query sul contenuto, che fornisce informazioni dettagliate sui modelli individuati nell'analisi o su una query di stima, che usa i modelli nel modello per eseguire stime per i nuovi dati. Ad esempio, una query di contenuto per un modello di rete neurale potrebbe recuperare i metadati del modello, ad esempio il numero di livelli nascosti. In alternativa, una query di stima potrebbe suggerire classificazioni basate su un input e, facoltativamente, fornire probabilità per ogni classificazione.

Questa sezione illustra come creare query per i modelli basati sull'algoritmo Microsoft Neural Network.

Query sul contenuto

Recupero dei metadati del modello tramite DMX

Recupero dei metadati del modello dal set di righe dello schema

Recupero degli attributi di input per il modello

Recupero di pesi dal livello nascosto

Query di stima

Creazione di una stima Singleton

Ricerca di informazioni su un modello di rete neurale

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. Queste informazioni forniscono informazioni dettagliate sul modello e includono i metadati di base, le strutture individuate nell'analisi e i parametri usati durante l'elaborazione. È possibile creare query sul contenuto del modello usando istruzioni DMX (Data Mining Extension).

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

La query seguente restituisce alcuni metadati di base relativi a un modello compilato usando l'algoritmo Microsoft Neural Network. In un modello di rete neurale il nodo padre del modello contiene solo il nome del modello, il nome del database in cui è archiviato il modello e il numero di nodi figlio. Tuttavia, il nodo delle statistiche marginali (NODE_TYPE = 24) fornisce sia questi metadati di base che alcune statistiche derivate sulle colonne di input usate nel modello.

La query di esempio seguente si basa sul modello di data mining creato nell'esercitazione intermedia sul data mining, denominato Call Center Default NN. Il modello usa i dati di un call center per esplorare le possibili correlazioni tra il personale e il numero di chiamate, ordini e problemi. L'istruzione DMX recupera i dati dal nodo delle statistiche marginali del modello di rete neurale. La query include la parola chiave FLATTENED, perché le statistiche degli attributi di input di interesse vengono archiviate in una tabella nidificata NODE_DISTRIBUTION. Tuttavia, se il provider di query supporta set di righe gerarchici, non è necessario usare la parola chiave FLATTENED.

SELECT FLATTENED MODEL_CATALOG, MODEL_NAME,   
(    SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE,  
     [SUPPORT], [PROBABILITY], VALUETYPE   
     FROM NODE_DISTRIBUTION  
) AS t  
FROM [Call Center Default NN].CONTENT  
WHERE NODE_TYPE = 24  

Annotazioni

È necessario racchiudere il nome delle colonne della tabella nidificate SUPPORT e PROBABILITY tra parentesi quadre per distinguerle dalle parole chiave riservate con lo stesso nome.

Risultati di esempio:

MODEL_CATALOG MODEL_NAME t.ATTRIBUTE_NAME t.ATTRIBUTE_VALUE t.SUPPORT t.PROBABILITY t.VALUETYPE
Adventure Works DW Multidimensionale 2012 Call Center NN Tempo medio per problema Mancante 0 0 1
Adventure Works DW Multidimensionale 2012 Call Center NN Tempo medio per problema < 64.7094100096 11 0.407407407 5

Per una definizione delle colonne nel set di righe dello schema nel contesto di un modello di rete neurale, vedere Contenuto del modello di data mining per i modelli di rete neurale (Analysis Services - Data mining).

Esempio di query 2: recupero dei metadati del modello dal set di righe dello schema

È possibile trovare le stesse informazioni restituite in una query sul contenuto DMX eseguendo una query sul set di righe dello schema di data mining. Tuttavia, il set di righe dello schema fornisce alcune colonne aggiuntive. La query di esempio seguente restituisce la data di creazione del modello, la data di modifica e la data dell'ultima elaborazione del modello. La query restituisce anche le colonne stimabili, che non sono facilmente disponibili dal contenuto del modello e i parametri usati per compilare il modello. Queste informazioni possono essere utili per documentare il modello.

SELECT MODEL_NAME, DATE_CREATED, LAST_PROCESSED, PREDICTION_ENTITY, MINING_PARAMETERS   
from $system.DMSCHEMA_MINING_MODELS  
WHERE MODEL_NAME = 'Call Center Default NN'  

Risultati di esempio:

Riga Metadati
MODEL_NAME NN predefinito del Call Center
DATE_CREATED 1/10/2008 5:07:38 PM
LAST_PROCESSED 1/10/2008 5:24:02 PM
PREDICTION_ENTITY Tempo medio per problema,

Grado di servizio,

Numero di ordini
MINING_PARAMETERS HOLDOUT_PERCENTAGE=30, HOLDOUT_SEED=0,

MAXIMUM_INPUT_ATTRIBUTES=255, MAXIMUM_OUTPUT_ATTRIBUTES=255,

MAXIMUM_STATES=100, SAMPLE_SIZE=10000, HIDDEN_NODE_RATIO=4

Esempio di query 3: recupero degli attributi di input per il modello

È possibile recuperare le coppie attributo-valore di input usate per creare il modello eseguendo una query sui nodi figlio (NODE_TYPE = 20) del livello di input (NODE_TYPE = 18). La query seguente restituisce un elenco di attributi di input dalle descrizioni dei nodi.

SELECT NODE_DESCRIPTION  
FROM [Call Center Default NN].CONTENT  
WHERE NODE_TYPE = 2  

Risultati di esempio:

NODE_DESCRIPTION
Tempo medio per problema=64,7094100096 - 77,4002099712
Giorno della settimana=venerdì.
Operatori di livello 1

Di seguito sono riportate solo alcune righe rappresentative dei risultati. Tuttavia, è possibile notare che il NODE_DESCRIPTION fornisce informazioni leggermente diverse a seconda del tipo di dati dell'attributo di input.

  • Se l'attributo è un valore discreto o discretizzato, viene restituito l'attributo e il relativo valore o il relativo intervallo discretizzato.

  • Se l'attributo è un tipo di dati numerici continui, il NODE_DESCRIPTION contiene solo il nome dell'attributo. È tuttavia possibile recuperare la tabella NODE_DISTRIBUTION annidata per ottenere la media o restituire il NODE_RULE per ottenere i valori minimo e massimo dell'intervallo numerico.

Nella query seguente viene illustrato come eseguire una query sulla tabella NODE_DISTRIBUTION annidata per restituire gli attributi in una colonna e i relativi valori in un'altra colonna. Per gli attributi continui, il valore dell'attributo è rappresentato dalla media.

SELECT FLATTENED   
(SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE  
FROM NODE_DISTRIBUTION) as t  
FROM [Call Center Default NN -- Predict Service and Orders].CONTENT  
WHERE NODE_TYPE = 21  

Risultati di esempio:

t.ATTRIBUTE_NAME t.ATTRIBUTE_VALUE
Tempo medio per problema 64.7094100096 - 77.4002099712
Giorno della settimana Ven.
Operatori di livello 1 3.2962962962963

I valori di intervallo minimo e massimo vengono archiviati nella colonna NODE_RULE e sono rappresentati come frammento XML, come illustrato nell'esempio seguente:

<NormContinuous field="Level 1 Operators">    
  <LinearNorm orig="2.83967303681711" norm="-1" />    
  <LinearNorm orig="3.75291955577548" norm="1" />    
</NormContinuous>    

Query di esempio 4: Recupero di pesi dal livello nascosto

Il contenuto del modello di un modello di rete neurale è strutturato in modo da semplificare il recupero dei dettagli su qualsiasi nodo della rete. Inoltre, i numeri ID dei nodi forniscono informazioni che consentono di identificare le relazioni tra i tipi di nodo.

La query seguente illustra come recuperare i coefficienti archiviati in un determinato nodo del livello nascosto. Il livello nascosto è costituito da un nodo organizzatore (NODE_TYPE = 19), che contiene solo metadati e più nodi figlio (NODE_TYPE = 22), che contengono i coefficienti per le varie combinazioni di attributi e valori. Questa query restituisce solo i nodi del coefficiente.

SELECT FLATTENED TOP 1 NODE_UNIQUE_NAME,   
(SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE, VALUETYPE  
FROM NODE_DISTRIBUTION) as t  
FROM  [Call Center Default NN -- Predict Service and Orders].CONTENT  
WHERE NODE_TYPE = 22  
AND [PARENT_UNIQUE_NAME] = '40000000200000000' FROM [Call Center Default NN].CONTENT  

Risultati di esempio:

NODE_UNIQUE_NAME t.ATTRIBUTE_NAME t.ATTRIBUTE_VALUE t.VALUETYPE
70000000200000000 6000000000000000a -0.178616518 7
70000000200000000 6000000000000000b -0.267561918 7
70000000200000000 6000000000000000c 0.11069497 7
70000000200000000 6000000000000000d 0.123757712 7
70000000200000000 6000000000000000e 0.294565343 7
70000000200000000 6000000000000000f 0.22245318 7
70000000200000000 0.188805045 7

I risultati parziali mostrati di seguito illustrano come il contenuto del modello di rete neurale correla il nodo nascosto ai nodi di input.

  • I nomi univoci dei nodi nel livello nascosto iniziano sempre con 70000000.

  • I nomi univoci dei nodi nel livello di input iniziano sempre con 60000000.

Di conseguenza, questi risultati indicano che il nodo indicato dall'ID 70000000200000000 aveva sei coefficienti diversi (VALUETYPE = 7) passati. I valori dei coefficienti si trovano nella colonna ATTRIBUTE_VALUE. È possibile determinare esattamente l'attributo di input per il coefficiente usando l'ID nodo nella colonna ATTRIBUTE_NAME. Ad esempio, l'ID nodo 6000000000000000a fa riferimento all'attributo e al valore di input, Day of Week = 'Tue.' è possibile usare l'ID nodo per creare una query oppure passare al nodo usando Microsoft Generic Content Tree Viewer.

Analogamente, se si esegue una query sulla tabella NODE_DISTRIBUTION dei nodi nel livello di output (NODE_TYPE = 23), è possibile visualizzare i coefficienti per ogni valore di output. Tuttavia, nel livello di output, i puntatori fanno riferimento ai nodi del livello nascosto. Per altre informazioni, vedere Contenuto del modello di data mining per i modelli di rete neurale (Analysis Services - Data mining).

Uso di un modello di rete neurale per eseguire stime

L'algoritmo Microsoft Neural Network supporta sia la classificazione che la regressione. È possibile usare le funzioni di stima con questi modelli per fornire nuovi dati e creare stime singleton o batch.

Query di esempio 5: Creazione di una stima Singleton

Il modo più semplice per compilare una query di stima in un modello di rete neurale consiste nell'usare Il generatore di query di stima, disponibile nella scheda Stima di data mining di Progettazione modelli di data mining in SQL Server Management Studio e SQL Server Data Tools. È possibile esplorare il modello in Microsoft Neural Network Viewer per filtrare gli attributi di interesse e visualizzare le tendenze, quindi passare alla scheda Stima di data mining per creare una query e prevedere nuovi valori per tali tendenze.

Ad esempio, è possibile esplorare il modello di call center per visualizzare le correlazioni tra i volumi degli ordini e altri attributi. A tale scopo, aprire il modello nel visualizzatore e selezionare <Tutto> per Input. Selezionare quindi Numero di ordini per Output. Per Valore 1 selezionare l'intervallo che rappresenta la maggior parte degli ordini e per Valore 2 selezionare l'intervallo che rappresenta i meno ordini. È quindi possibile visualizzare a colpo d'occhio tutti gli attributi correlati al modello con il volume dell'ordine.

Esplorando i risultati nel visualizzatore, si scopre che determinati giorni della settimana hanno volumi di ordine bassi e che un aumento del numero di operatori sembra essere correlato alle vendite più elevate. È quindi possibile usare una query di stima sul modello per testare un'ipotesi "what if" e chiedere se l'aumento del numero di operatori di livello 2 in un giorno con volume ridotto aumenterebbe gli ordini. A tale scopo, creare una query come la seguente:

SELECT Predict([Call Center Default NN].[Number of Orders]) AS [Predicted Orders],  
PredictProbability([Call Center Default NN].[Number of Orders]) AS [Probability]  
FROM [Call Center Default NN]  
NATURAL PREDICTION JOIN   
(SELECT 'Tue.' AS [Day of Week],  
13 AS [Level 2 Operators]) AS t  

Risultati di esempio:

Ordini stimati Probabilità
364 0.9532...

Il volume delle vendite stimato è superiore all'intervallo di vendite corrente per martedì e la probabilità della stima è molto elevata. Tuttavia, è possibile creare più stime usando un processo batch per testare un'ampia gamma di ipotesi sul modello.

Annotazioni

Il data mining Add-Ins per Excel 2007 offre procedure guidate di regressione logistica che semplificano la risposta a domande complesse, ad esempio il numero di operatori di livello due per migliorare il livello di servizio a un livello di destinazione per uno spostamento specifico. I componenti aggiuntivi di data mining sono un download gratuito e includono procedure guidate basate sulla rete neurale e/o sugli algoritmi di regressione logistica. Per altre informazioni, vedere il sito Web Dei componenti aggiuntivi di data mining per Office 2007 .

Elenco di funzioni di stima

Tutti gli algoritmi Microsoft supportano un set comune di funzioni. Non esistono funzioni di stima specifiche per l'algoritmo Microsoft Neural Network; Tuttavia, l'algoritmo supporta le funzioni elencate nella tabella seguente.

Funzione Prediction Usage
IsDescendant (DMX) Determina se un nodo è figlio di un altro nodo nel grafico della rete neurale.
PredictAdjustedProbability (DMX) Restituisce la probabilità ponderata.
PredictHistogram (DMX) Restituisce una tabella di valori correlati al valore stimato corrente.
PredictVariance (DMX) Restituisce la varianza per il valore stimato.
PredictProbability (DMX) Restituisce la probabilità per il valore stimato.
PredictStdev (DMX) Restituisce la devianza standard per il valore stimato.
PredictSupport (DMX) Per i modelli di rete neurale e regressione logistica, restituisce un singolo valore che rappresenta le dimensioni del set di training per l'intero modello.

Per un elenco delle funzioni comuni a tutti gli algoritmi Microsoft, vedere Riferimento all'algoritmo (Analysis Services - Data mining). Per la sintassi di funzioni specifiche, vedere Informazioni di riferimento sulle funzioni DMX (Data Mining Extensions).

Vedere anche

Algoritmo Microsoft Neural Network
Riferimento tecnico per l'algoritmo Microsoft Neural Network
Contenuto del modello di data mining per i modelli di rete neurale (Analysis Services - Data mining)
Lezione 5: Creazione di modelli di rete neurale e regressione logistica (esercitazione intermedia sul data mining)