Condividi tramite


Algoritmo Microsoft Neural Network (SSAS)

In Microsoft SQL Server 2005 Analysis Services (SSAS), l'algoritmo Microsoft Neural Network crea modelli di data mining per la classificazione e la regressione costruendo una rete neurale perceptron multistrato. Analogamente all'algoritmo Microsoft Decision Trees, l'algoritmo Microsoft Neural Network calcola le probabilità per ogni stato possibile dell'attributo di input considerando ogni stato dell'attributo stimabile. In seguito, è possibile utilizzare tali probabilità per determinare il risultato dell'attributo stimabile in base agli attributi di input.

Esempio

L'algoritmo Microsoft Neural Network è utile per l'analisi di dati di input complessi, ad esempio relativi a un processo di produzione o commerciale, oppure di problemi aziendali per i quali è disponibile una quantità significativa di dati di training ma non è possibile derivare facilmente regole specifiche tramite altri algoritmi.

Tra gli scenari consigliati per l'utilizzo dell'algoritmo Microsoft Neural Network sono inclusi i seguenti:

  • Analisi di marketing e di promozioni, ad esempio la misurazione del successo di una promozione tramite mailing diretto o di una campagna pubblicitaria radiofonica
  • Stima di fluttuazioni del mercato azionario e valutarie o di altre informazioni finanziarie ad elevata variabilità in base a dati cronologici
  • Analisi di processi di produzione e industriali

Funzionamento dell'algoritmo

L'algoritmo Microsoft Neural Network utilizza una rete perceptron multistrato, chiamata anche rete Delta Rule con retropropagazione, costituita da un massimo di tre livelli neurali o perceptron. Tali livelli rappresentano rispettivamente un livello di input, un livello nascosto facoltativo e un livello di output. In una rete perceptron multistrato, ogni neurone riceve uno o più input e produce uno o più output identici. Ogni output è una funzione non lineare semplice della somma degli input ricevuti dal neurone. Gli input passano soltanto dai nodi del livello di input ai nodi del livello nascosto e infine ai nodi del livello di output. Non esistono connessioni tra i neuroni all'interno di un livello. Se non è disponibile un livello nascosto, gli input passano dai nodi del livello di input ai nodi del livello di output. La descrizione dettagliata delle reti neurali perceptron multistrato non rientra tra gli argomenti trattati nella presente documentazione.

Un modello di data mining costruito con l'algoritmo Microsoft Neural Network può includere più reti, a seconda del numero di colonne utilizzate sia per l'input che per la stima o solo per la stima. Il numero di reti incluse in un singolo modello di data mining dipende dal numero di stati contenuti nelle colonne di input e stimabili utilizzate dal modello.

Una rete neurale creata con l'algoritmo Microsoft Neural Network include tre tipi di neuroni:

  • Neuroni di input
    I neuroni di input forniscono i valori degli attributi per il modello di data mining. Per gli attributi di input discreti, un neurone di input rappresenta generalmente un singolo stato derivato da questo tipo di attributo, inclusi i valori mancanti. Ad esempio, un attributo di input binario genera un nodo di input che descrive uno stato mancante o esistente, indicando se è disponibile un valore per tale attributo. Una colonna booleana utilizzata come attributo di input genera tre neuroni di input: un neurone per i valori True, un neurone per i valori False e un neurone per uno stato mancante o esistente. Un attributo di input discreto che include più di due stati genera un neurone di input per ogni stato e un neurone di input per uno stato mancante o esistente. Un attributo di input continuo genera due neuroni di input: un neurone per uno stato mancante o esistente e un neurone per il valore dell'attributo continuo stesso. I neuroni di input inviano gli input a uno o più neuroni nascosti.
  • Neuroni nascosti
    I neuroni nascosti ricevono gli input dai neuroni di input e inviano gli output agli attributi di output.
  • Neuroni di output
    I neuroni di output rappresentano i valori degli attributi stimabili per il modello di data mining. Per gli attributi di input discreti, un neurone di output rappresenta generalmente un singolo stato stimato per un attributo stimabile, inclusi i valori mancanti. Ad esempio, un attributo stimabile binario genera un nodo di output che descrive uno stato mancante o esistente, indicando se è disponibile un valore per tale attributo. Una colonna booleana utilizzata come attributo stimabile genera tre neuroni di output: un neurone per i valori True, un neurone per i valori False e un neurone per uno stato mancante o esistente. Un attributo stimabile discreto che include più di due stati genera un neurone di output per ogni stato e un neurone di output per uno stato mancante o esistente. Le colonne stimabili continue generano due neuroni di output: un neurone per uno stato mancante o esistente e un neurone per il valore della colonna continua stessa. Se vengono generati più di 500 neuroni di output esaminando il set di colonne stimabili, Analysis Services genera un nuova rete nel modello di data mining per rappresentare i neuroni di output aggiuntivi.

Un neurone riceve vari input: tramite i neuroni di input, riceve gli input dai dati originali; tramite i neuroni nascosti e i neuroni di output, riceve gli input dall'output di altri neuroni della rete neurale. Gli input stabiliscono le relazioni tra i neuroni e le relazioni vengono utilizzate come percorso di analisi per un set di case specifico.

A ogni input viene assegnato un valore, denominato peso, che descrive la rilevanza o importanza di un input specifico per il neurone nascosto o per il neurone di output. Maggiore è il peso assegnato a un input, maggiore è la rilevanza o importanza del valore di tale input per il neurone che lo riceve quando l'algoritmo determina se l'input classifica correttamente un case specifico. Si noti inoltre che i pesi possono essere negativi e, di conseguenza, l'input può inibire un neurone specifico anziché attivarlo. Il valore dell'input viene moltiplicato per il peso in modo da evidenziare l'importanza dell'input per un neurone specifico. Nel caso di pesi negativi, il valore dell'input viene moltiplicato per il peso in modo da ridurre l'importanza dell'input.

A ogni neurone viene assegnata di conseguenza una funzione non lineare semplice, denominata funzione di attivazione, che descrive la rilevanza o importanza di un neurone specifico per il livello di una rete neurale. Per la funzione di attivazione, i neuroni nascosti utilizzano una funzione di tangente iperbolica mentre i neuroni di output utilizzano una funzione sigmoidale. Entrambe le funzioni sono funzioni non lineari continue che consentono alla rete neurale di modellare relazioni non lineari tra i neuroni di input e di output.

Reti neurali di training

Il training di un modello di data mining che utilizza l'algoritmo Microsoft Neural Network implica varie operazioni. Tali operazioni vengono notevolmente influenzate dai valori specificati per i parametri disponibili per l'algoritmo.

Innanzitutto, l'algoritmo valuta ed estrae i dati di training dall'origine dei dati. Una percentuale dei dati di training, denominati dati di controllo, viene riservata per la misurazione dell'accuratezza della struttura del modello risultante. Durante il processo di training, il modello viene valutato in base ai dati di controllo dopo ogni iterazione sui dati di training. Quando l'accuratezza del modello non aumenta più, il processo di training viene interrotto. I valori dei parametri SAMPLE_SIZE e HOLDOUT_PERCENTAGE vengono utilizzati per determinare il numero di case di campionamento da estrarre dai dati di training e il numero di case da riservare per i dati di controllo. Il valore del parametro HOLDOUT_SEED viene utilizzato per la determinazione casuale dei singoli case da riservare per i dati di controllo.

Successivamente, l'algoritmo determina il numero e la complessità delle reti supportati dal modello di data mining. Se il modello di data mining contiene uno o più attributi utilizzati solo per la stima, l'algoritmo crea una singola rete che rappresenta tutti gli attributi. Se il modello di data mining contiene uno o più attributi utilizzati sia per l'input che per la stima, il provider dell'algoritmo costruisce una rete per ognuno di tali attributi. Se il numero degli attributi di input o stimabili è maggiore rispettivamente del valore del parametro MAXIMUM_INPUT_ATTRIBUTES o del parametro MAXIMUM_OUTPUT_ATTRIBUTES, viene utilizzato un algoritmo della funzionalità di selezione degli attributi per ridurre la complessità delle reti incluse nel modello di data mining. La funzionalità di selezione degli attributi riduce il numero degli attributi di input o stimabili scegliendo quelli statisticamente più rilevanti per il modello.

Per gli attributi di input e stimabili con valori discreti, ogni neurone di input o di output rappresenta rispettivamente un singolo stato. Per gli attributi di input e stimabili con valori continui, ogni neurone di input o di output rappresenta rispettivamente l'intervallo e la distribuzione dei valori dell'attributo. Il numero massimo di stati supportato in ognuno dei due casi dipende dal valore del parametro MAXIMUM_STATES dell'algoritmo. Se il numero di stati per un attributo specifico supera il valore del parametro MAXIMUM_STATES dell'algoritmo, vengono scelti gli stati più frequenti o rilevanti per tale attributo, fino al valore massimo, mentre gli stati rimanenti vengono raggruppati come valori mancanti da utilizzare a scopo di analisi.

L'algoritmo utilizza quindi il valore del parametro HIDDEN_NODE_RATIO durante la determinazione del numero iniziale di neuroni per creare il livello nascosto. È possibile impostare il parametro HIDDEN_NODE_RATIO su 0 per impedire la creazione di un livello nascosto nelle reti generate dall'algoritmo per il modello di data mining, in modo che la rete neurale venga considerata come una regressione logistica.

Il provider dell'algoritmo valuta contemporaneamente il peso di tutti gli input della rete in modo iterativo, considerando il set di dati di training riservato in precedenza e confrontando il valore conosciuto effettivo per ogni case nei dati di controllo con la stima della rete, mediante un processo noto come apprendimento in batch. Dopo che l'algoritmo ha valutato l'intero set di dati di training, esamina il valore stimato ed effettivo per ogni neurone. L'algoritmo calcola l'eventuale grado di errore e modifica i pesi associati agli input di tale neurone, procedendo a ritroso dai neuroni di output ai neuroni di input in un processo noto come retropropagazione. Successivamente, l'algoritmo ripete il processo sull'intero set di dati di training. Poiché l'algoritmo può supportare molti pesi e neuroni di output, viene utilizzato l'algoritmo basato su gradienti coniugati per gestire il processo di training al fine di assegnare e valutare i pesi per gli input. La descrizione dell'algoritmo basato su gradienti coniugati non rientra tra gli argomenti trattati nella presente documentazione.

Utilizzo dell'algoritmo

Un modello di rete neurale deve contenere una colonna chiave, una o più colonne di input e una o più colonne stimabili.

L'algoritmo Microsoft Neural Network supporta tipi di contenuto specifici delle colonne di input, tipi di contenuto specifici delle colonne stimabili e flag di modellazione, elencati nella tabella seguente.

Tipi di contenuto delle colonne di input

Continuous, Cyclical, Discrete, Discretized, Key, Table e Ordered

Tipi di contenuto delle colonne stimabili

Continuous, Cyclical, Discrete, Discretized e Ordered

Flag di modellazione

MODEL_EXISTENCE_ONLY e NOT NULL

Flag di distribuzione

Normal, Uniform e Log Normal

Tutti gli algoritmi Microsoft supportano un set comune di funzioni. L'algoritmo Microsoft Neural Network supporta tuttavia funzioni aggiuntive, elencate nella tabella seguente.

IsDescendant

PredictStdev

PredictAdjustedProbability

PredictSupport

PredictHistogram

PredictVariance

PredictProbability

 

Per un elenco delle funzioni comuni a tutti gli algoritmi Microsoft, vedere Algoritmi di data mining. Per ulteriori informazioni sull'utilizzo di queste funzioni, vedere Guida di riferimento alle funzioni DMX (Data Mining Extensions).

I modelli creati tramite l'algoritmo Microsoft Neural Network non supportano il drill-through o le dimensioni di data mining, in quanto non necessariamente la struttura di nodi nel modello di data mining corrisponde direttamente ai dati sottostanti.

L'algoritmo Microsoft Neural Network supporta vari parametri che influiscono sulle prestazioni e sull'accuratezza del modello di data mining risultante. Nella tabella seguente viene descritto ogni parametro.

Parametro Descrizione

HIDDEN_NODE_RATIO

Specifica il rapporto tra i neuroni nascosti e i neuroni di input e di output. La formula seguente consente di determinare il numero iniziale di neuroni nel livello nascosto:

HIDDEN_NODE_RATIO * SQRT(Total input neurons * Total output neurons)

Il valore predefinito è 4,0.

HOLDOUT_PERCENTAGE

Specifica la percentuale di case all'interno dei dati di training utilizzata per calcolare l'errore di controllo nell'ambito dei criteri di interruzione durante il training del modello.

Il valore predefinito è 30.

HOLDOUT_SEED

Specifica un numero utilizzato come valore di inizializzazione per il generatore pseudocasuale quando l'algoritmo determina in modo casuale i dati di controllo. Se questo parametro è impostato su 0, l'algoritmo genera il valore di inizializzazione in base al nome del modello di data mining, per garantire che il contenuto del modello rimanga invariato durante la rielaborazione.

Il valore predefinito è 0.

MAXIMUM_INPUT_ATTRIBUTES

Determina il numero massimo di attributi di input che è possibile fornire all'algoritmo prima di utilizzare la funzionalità di selezione degli attributi. Se si imposta il valore 0, la funzionalità di selezione degli attributi di input viene disattivata.

Il valore predefinito è 255.

MAXIMUM_OUTPUT_ATTRIBUTES

Determina il numero massimo di attributi di output che è possibile fornire all'algoritmo prima di utilizzare la funzionalità di selezione degli attributi. Se si imposta il valore 0, la funzionalità di selezione degli attributi di output viene disattivata.

Il valore predefinito è 255.

MAXIMUM_STATES

Specifica il numero massimo di stati discreti per attributo supportato dall'algoritmo. Se il numero di stati per un attributo specifico è maggiore del numero specificato per questo parametro, l'algoritmo utilizza gli stati più frequenti per tale attributo e considera gli stati rimanenti come mancanti.

Il valore predefinito è 100.

SAMPLE_SIZE

Specifica il numero di case da utilizzare per il training del modello. L'algoritmo utilizza questo numero o la percentuale del numero totale di case non inclusi nei dati di controllo specificati dal parametro HOLDOUT_PERCENTAGE, a seconda del valore minore.

In altre parole, se il parametro HOLDOUT_PERCENTAGE è impostato su 30, l'algoritmo utilizzerà il valore di questo parametro o un valore uguale al 70% del numero totale di case, a seconda del valore minore.

Il valore predefinito è 10000.

Vedere anche

Concetti

Algoritmi di data mining
Funzionalità di selezione degli attributi nel data mining
Utilizzo degli strumenti di data mining
Visualizzazione di un modello di data mining con il Visualizzatore Microsoft Neural Network

Altre risorse

CREATE MINING MODEL (DMX)

Guida in linea e informazioni

Assistenza su SQL Server 2005