Condividi tramite


Valori mancanti (Analysis Services - Data mining)

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 interrotto 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.

La gestione corretta dei valori mancanti è una parte importante della modellazione efficace. In questa sezione vengono illustrati i valori mancanti e vengono descritte le funzionalità fornite in SQL Server Analysis Services per usare i valori mancanti durante la creazione di strutture di data mining e modelli di data mining.

Definizione dei valori mancanti nel data mining

Un valore mancante può avere diversi significati. È possibile che il campo non fosse applicabile, che l'evento non si sia verificato o che i dati non fossero disponibili. Potrebbe essere accaduto che la persona che ha immesso i dati non conoscesse il valore corretto o non abbia verificato l'effettiva compilazione di un campo.

Tuttavia, sono molti gli scenari di data mining in cui tramite i valori mancanti vengono fornite informazioni importanti. Il significato dei valori mancanti dipende in gran parte dal contesto. Ad esempio, il significato di un valore mancante per la data in un elenco di fatture è sostanzialmente diverso dalla mancanza di una data in colonna indicante la data di assunzione di un dipendente. In genere, SQL Server Analysis Services considera i valori mancanti come informativo e modifica le probabilità di incorporare i valori mancanti nei calcoli. In questo modo, è possibile assicurarsi che i modelli siano bilanciati e che ai case esistenti non venga assegnato un peso eccessivo.

Pertanto, SQL Server Analysis Services fornisce due meccanismi distinti per la gestione e il calcolo dei valori mancanti. Il primo metodo consente di controllare la gestione dei valori Null a livello di struttura di data mining. Il secondo metodo differisce per quanto riguarda l'implementazione per ogni algoritmo, tuttavia generalmente consente di definire la modalità di elaborazione e conteggio dei valori mancanti nei modelli che consentono valori Null.

Specificazione della gestione di valori Null

Nell'origine dati, i valori mancanti potrebbero essere rappresentati in molti modi: come valori Null, celle vuote in un foglio di calcolo, valore N/D o qualche altro codice oppure come valore artificiale quale 9999. Tuttavia, per gli scopi di data mining, sono considerati valori mancanti solo i valori Null. Se nei dati sono contenuti valori segnaposto anziché valori Null, è possibile che i risultati del modello ne vengano influenzati, pertanto è consigliabile sostituirli con valori Null o derivare valori corretti se possibile. 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.

Se per l'attività da modellare è specificato che una colonna non deve mai avere valori mancanti, è consigliabile applicare il flag di modellazione NOT_NULL alla colonna quando si definisce la struttura di data mining. Tramite questo flag viene indicato che l'elaborazione non verrà eseguita se a un case non è associato un valore appropriato. Se durante l'elaborazione di un modello si verifica questo errore, è possibile registrarlo ed effettuare le operazioni per correggere i dati forniti al modello.

Calcolo dello stato mancante

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

Quando si crea un modello di data mining, viene automaticamente aggiunto uno stato Missing per tutte le colonne discrete. Se ad esempio nella colonna di input [Sesso] sono contenuti due valori possibili, Male e Female, viene automaticamente aggiunto un terzo valore per rappresentare il valore Missing e nell'istogramma indicante la distribuzione di tutti i valori per la colonna è sempre incluso un conteggio dei case con valori Missing . Se nella colonna Gender non manca alcun valore, nell'istogramma viene mostrato che lo stato Missing è stato rilevato in 0 case.

La logica alla base dell'inclusione dello stato Missing per impostazione predefinita diventa chiara se si considera che nei dati possono non essere contenuti esempi di tutti i valori possibili ed è preferibile evitare che la possibilità venga esclusa nel modello 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. Invece, SQL Server Analysis Services aggiunge un segnaposto per il valore sconosciuto aggiuntivo, denominato Missing, come modo di accodare possibili altri stati.

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 Casi
0 9296
1 9098
Missing 0

Tramite questa distribuzione viene indicato che circa la metà dei clienti ha acquistato una bicicletta, mentre l'altra metà no. Questo specifico set di dati è molto pulito. Ogni case ha pertanto un valore nella colonna [Bike Buyer] e il conteggio dei valori Missing è 0. Tuttavia, se qualsiasi caso aveva un valore Null nel campo [Bike Buyer], SQL Server Analysis Services conteggierebbe tale riga come caso con un valore Mancante.

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 nidificata Prodotti 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 altre informazioni, vedere Applicare un filtro a un modello di data mining.

Adattamento della probabilità per gli stati mancanti

Oltre ai valori di conteggio, SQL Server Analysis Services calcola la probabilità di qualsiasi valore nel set di dati. Lo stesso vale per il valore Missing . Nella tabella seguente sono, ad esempio, illustrate le probabilità per i case dell'esempio precedente:

Valore Casi Probabilità
0 9296 50,55%
1 9098 49,42%
Missing 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. Per tenere conto dei case Missing , viene tuttavia aggiunto 1 al numero di tutti i case possibili. 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à, è consigliabile impostare il flag di modellazione NOT_NULL sulla colonna nella struttura di data mining.

Nota

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

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 degli alberi delle decisioni consente di eseguire un adattamento per lo stato Missing usando una formula leggermente diversa.

In un modello di albero delle decisioni la probabilità dello stato Missing viene calcolata nel modo seguente:

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

L'algoritmo Decision Trees fornisce una regolazione aggiuntiva che consente all'algoritmo di compensare la presenza di filtri nel modello, che può comportare l'esclusione di molti stati durante il training.

In SQL Server 2017, se uno stato è presente durante il training, ma accade solo di avere zero supporto in un determinato nodo, viene apportata la regolazione standard. Tuttavia, se uno stato non viene mai rilevato durante il training, l'algoritmo consente di impostare la probabilità esattamente su zero. Questo adattamento non si applica soltanto allo stato Missing , ma anche agli altri stati esistenti nei dati di training a cui corrisponde un supporto zero in seguito al filtro del modello.

Il risultato di questo adattamento aggiuntivo è la formula seguente:

StateProbability = 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.

Negli argomenti seguenti vengono fornite ulteriori informazioni sulla gestione dei valori mancanti.

Attività Collegamenti
Aggiungere flag alle singole colonne del modello per controllare la gestione dei valori mancanti Visualizzare o modificare flag di modellazione (Data mining)
Impostare le proprietà su un modello di data mining per controllare la gestione dei valori mancanti Modificare le proprietà di un modello di data mining
Informazioni sulla specificazione di flag di modellazione in DMX Flag di modellazione (DMX)
Modificare la modalità di gestione dei valori mancanti da parte della struttura di data mining Modificare le proprietà di una struttura di data mining

Vedere anche

Mining Model Content (Analysis Services - Data Mining)
Flag di modellazione (data mining)