Valori mancanti (Analysis Services - Data mining)

Un valore mancante può avere diversi significati nei dati. È possibile che il campo non sia applicabile, che l'evento non si sia verificato o che i dati non siano disponibili. L'utente che ha immesso i dati potrebbe non conoscere il valore corretto o non essersi reso conto che un campo non è stato completato. Pertanto, in Analysis Services sono disponibili due meccanismi diversi per la gestione e il calcolo dei valori mancanti, noti anche come valori Null.

Se per l'attività da modellare è specificato che una colonna non deve mai avere valori mancanti, è necessario utilizzare il flag di modellazione NOT_NULL quando si definisce la struttura di data mining. In questo modo l'elaborazione non verrà eseguita se a un case non è associato un valore appropriato. Se durante l'elaborazione di un modello si verifica un errore, è possibile registrare quest'ultimo ed eseguire le operazioni per correggere i dati forniti al modello. Sono disponibili diversi strumenti che è possibile utilizzare per derivare e inserire i valori appropriati, ad esempio la trasformazione Ricerca o l'attività Profiler dati di SQL Server Integration Services oppure lo strumento Estendi da esempio disponibile nei componenti aggiuntivi Data mining per Excel.

Tuttavia, in molti scenari di data mining i valori mancanti forniscono informazioni importanti. In generale, in Analysis Services i valori mancanti vengono considerati informativi e vengono adattate le probabilità per incorporarli nei calcoli. In questo modo, è possibile assicurarsi che i modelli siano bilanciati e che ai case esistenti non venga assegnato un peso eccessivo. In questa sezione viene illustrata la modalità con cui i valori vengono definiti e conteggiati come di tipo Mancante nei modelli che consentono valori Null. Viene inoltre descritta la modalità con cui questi valori Missing vengono elaborati e utilizzati dagli algoritmi di data mining durante la creazione di un modello.

[!NOTA]

Ogni algoritmo, inclusi quelli personalizzati che è possibile ottenere da un plug-in di terze parti, gestisce i valori mancanti in modo diverso.

Utilizzo di valori mancanti nei modelli

Per l'algoritmo di data mining, i valori mancanti sono informativi. Nelle tabelle del case, Missing è uno stato valido come qualsiasi altro. Inoltre, un modello di data mining può utilizzare altri valori per stimare se un valore è mancante. In altri termini, il fatto che un valore sia mancante non viene considerato come un errore.

Quando si crea un modello di data mining, viene automaticamente aggiunto uno stato Missing per tutte le colonne discrete. Se ad esempio la colonna di input per Gender contiene due valori possibili, Male e Female, viene automaticamente aggiunto un terzo valore per rappresentare il valore Missing e l'istogramma che indica la distribuzione di tutti i valori per la colonna include sempre un conteggio dei case con valori Missing. Se nella colonna Gender non manca alcun valore, l'istogramma mostra che lo stato Mancante è stato rilevato in 0 case.

Il fatto che lo stato Missing sia incluso per impostazione predefinita ha senso se si considera che i dati potrebbero non contenere esempi di tutti i valori possibili ed è preferibile evitare che il modello escluda la possibilità solo perché non sono presenti esempi nei dati. Se ad esempio dai dati delle vendite di un negozio risulta che tutti i clienti che hanno acquistato un determinato prodotto sono di sesso femminile, non è consigliabile creare un modello che stima che solo le donne possono acquistare tale prodotto. Al contrario, in Analysis Services viene aggiunto un segnaposto per il valore sconosciuto aggiuntivo, denominato Missing, in modo da tenere conto di altri stati possibili.

Ad esempio, nella tabella seguente è illustrata la distribuzione di valori per il nodo (Tutto) nel modello di albero delle decisioni creato per l'esercitazione Bike Buyer. Nello scenario di esempio la colonna [Bike Buyer] rappresenta l'attributo stimabile, dove 1 indica "Sì" e 0 indica "No".

Valore

Case

0

9296

1

9098

Mancante

0

Questa distribuzione indica che circa la metà dei clienti ha acquistato una bicicletta, mentre l'altra metà no. Questo specifico set di dati è molto pulito; pertanto, ogni case ha un valore nella colonna [Bike Buyer] e il conteggio dei valori Missing è 0. Tuttavia, se nel campo [Bike Buyer] di un case è presente un valore Null, in Analysis Services tale riga viene conteggiata come un case con un valore Missing.

Se l'input è una colonna continua, il modello tabula due possibili stati per l'attributo: Existing e Missing. In altri termini, la colonna contiene un valore di un tipo di dati numerico oppure non contiene alcun valore. Per i case che contengono un valore, il modello calcola la media, la deviazione standard e altre statistiche significative. Per i case che non includono valori, il modello fornisce un conteggio dei valori Missing e adatta le stime di conseguenza. Il metodo per adattare la stima varia a seconda dell'algoritmo e viene descritto nella sezione seguente.

[!NOTA]

Per gli attributi di una tabella nidificata, i valori mancanti non sono informativi. Se ad esempio un cliente non ha acquistato un prodotto, la tabella Products nidificata non include una riga corrispondente a tale prodotto e il modello di data mining non crea un attributo per il prodotto mancante. Se tuttavia si è interessati ai clienti che non hanno acquistato determinati prodotti, è possibile creare un modello filtrato in base alla non esistenza dei prodotti nella tabella nidificata, utilizzando un'istruzione NOT EXISTS nel filtro del modello. Per ulteriori informazioni, vedere Procedura: Applicazione di un filtro a un modello di data mining.

Adattamento della probabilità per il valore mancante

Oltre al conteggio dei valori, in Analysis Services viene eseguito il calcolo della probabilità di qualsiasi valore nel set di dati. Lo stesso vale per i valori Missing. Ad esempio, nella tabella seguente sono illustrate le probabilità per i case dell'esempio precedente:

Valore

Case

Probabilità

0

9296

50.55%

1

9098

49.42%

Mancante

0

0.03%

Può sembrare strano che la probabilità del valore Missing venga calcolata come 0,03%, quando il numero di case è 0. In realtà, si tratta di un comportamento previsto che consente al modello di gestire correttamente i valori non noti.

In generale, la probabilità viene calcolata dividendo i case utili per tutti quelli possibili. In questo esempio l'algoritmo calcola la somma dei case che soddisfano una determinata condizione ([Bike Buyer] = 1 o [Bike Buyer] = 0) e divide tale numero per il conteggio totale delle righe. Tuttavia, per tenere conto dei case Missing, al numero di tutti i case possibili viene aggiunto 1. Di conseguenza, la probabilità per il case sconosciuto non è più uguale a zero, ma corrisponde a un numero molto basso, a indicare che lo stato è semplicemente improbabile, non impossibile.

L'aggiunta del valore Missing basso non modifica il risultato del criterio di stima; tuttavia consente una modellazione più efficace negli scenari in cui i dati cronologici non includono tutti i risultati possibili.

[!NOTA]

I provider di data mining gestiscono i valori mancanti in modi diversi. Alcuni, ad esempio, presuppongono che in una colonna nidificata i dati mancanti siano una rappresentazione di tipo sparse, mentre in una colonna non nidificata siano mancanti in modo casuale.

Se si è certi che tutti i risultati siano specificati nei dati e si desidera evitare l'adattamento delle probabilità, impostare il flag di modellazione NOT_NULL nella colonna nella struttura di data mining.

Gestione speciale di valori mancanti nei modelli di albero delle decisioni

L'algoritmo Microsoft Decision Trees calcola le probabilità per i valori mancanti in modo diverso rispetto ad altri algoritmi. Anziché aggiungere solo 1 al numero complessivo di case, l'algoritmo Decision Trees esegue un adattamento per gli stati Mancante utilizzando una formula leggermente diversa.

In un modello di albero delle decisioni, la probabilità dello stato mancante viene calcolata come segue:

ProbabilitàStato = (ProbabilitàPrecedenteNodo) * (SupportoStato + 1) / (SupportoNodo + TotaleStati)

Inoltre, in SQL Server 2008 Analysis Services l'algoritmo Decision Trees fornisce un adattamento aggiuntivo che consente di compensare la presenza di filtri nel modello, fattore che potrebbe comportare l'esclusione di molti stati durante il training.

In SQL Server 2008, se uno stato è presente durante il training ma ha supporto 0 in un determinato nodo, viene eseguito l'adattamento standard. Tuttavia, se uno stato non viene mai rilevato durante il training, l'algoritmo imposta la probabilità esattamente su 0. Questo adattamento non si applica soltanto allo stato Mancante, ma anche agli stati esistenti nei dati di training a cui corrisponde un supporto 0 in seguito al filtro del modello.

Il risultato di questo adattamento aggiuntivo è la formula seguente:

ProbabilitàStato = 0,0 se tale stato ha supporto 0 nel set di training

ELSE ProbabilitàStato = (ProbabilitàPrecedenteNodo) * (SupportoStato + 1) / (SupportoNodo + TotaleStatiConSupportoNonZero

L'effetto finale di questo adattamento è di mantenere la stabilità dell'albero.