Valori mancanti (Analysis Services - Data mining)Missing Values (Analysis Services - Data Mining)

Si applica a: SQL Server Analysis Services Azure Analysis Services Power bi Premium

Una gestione corretta dei valori mancanti è fondamentale per ottenere una modellazione efficace.Handling missing values correctly is an important part of effective modeling. In questa sezione vengono illustrati i valori mancanti e descritte le caratteristiche fornite in Analysis ServicesAnalysis Services per gestire i valori mancanti durante la compilazione di strutture e modelli di data mining.This section explains what missing values are, and describes the features provided in Analysis ServicesAnalysis Services to work with missing values when building data mining structures and mining models.

Definizione dei valori mancanti nel data miningDefinition of Missing Values in Data Mining

Un valore mancante può avere diversi significati.A missing value can signify a number of different things. È possibile che il campo non fosse applicabile, che l'evento non si sia verificato o che i dati non fossero disponibili.Perhaps the field was not applicable, the event did not happen, or the data was not available. 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.It could be that the person who entered the data did not know the right value, or did not care if a field was not filled in.

Tuttavia, sono molti gli scenari di data mining in cui tramite i valori mancanti vengono fornite informazioni importanti.However, there are many data mining scenarios in which missing values provide important information. Il significato dei valori mancanti dipende in gran parte dal contesto.The meaning of the missing values depends largely on context. 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.For example, a missing value for the date in a list of invoices has a meaning substantially different from the lack of a date in column that indicates an employee hire date. In generale, in Analysis ServicesAnalysis Services i valori mancanti vengono considerati informativi e vengono adattate le probabilità per incorporarli nei calcoli.Generally, Analysis ServicesAnalysis Services treats missing values as informative and adjusts the probabilities to incorporate the missing values into its calculations. In questo modo, è possibile assicurarsi che i modelli siano bilanciati e che ai case esistenti non venga assegnato un peso eccessivo.By doing so, you can ensure that models are balanced and do not weight existing cases too heavily.

In Analysis ServicesAnalysis Services sono pertanto disponibili due meccanismi diversi per gestire e calcolare i valori mancanti.Therefore, Analysis ServicesAnalysis Services provides two distinctly different mechanisms for managing and calculating missing values. Il primo metodo consente di controllare la gestione dei valori Null a livello di struttura di data mining.The first method controls the handling of nulls at the level of the mining structure. 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.The second method differs in implementation for each algorithm, but generally defines how missing values are processed and counted in models that permit null values.

Specificazione della gestione di valori NullSpecifying Handling of Nulls

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.In your data source, missing values might be represented in many ways: as nulls, as empty cells in a spreadsheet, as the value N/A or some other code, or as an artificial value such as 9999. Tuttavia, per gli scopi di data mining, sono considerati valori mancanti solo i valori Null.However, for purposes of data mining, only nulls are considered missing values. 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.If your data contains placeholder values instead of nulls, they can affect the results of the model, so you should replace them with nulls or infer correct values if possible. 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.There are a variety of tools that you can use to infer and fill in appropriate values, such as the Lookup transformation or the Data Profiler task in SQL Server Integration Services, or the Fill By Example tool provided in the Data Mining Add-Ins for 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.If the task that you are modeling specifies that a column must never have missing values, you should apply the NOT_NULL modeling flag to the column when you define the mining structure. Tramite questo flag viene indicato che l'elaborazione non verrà eseguita se a un case non è associato un valore appropriato.This flag indicates that processing should fail if a case does not have an appropriate value. Se durante l'elaborazione di un modello si verifica questo errore, è possibile registrarlo ed effettuare le operazioni per correggere i dati forniti al modello.If this error occurs when processing a model, you can log the error and take steps to correct the data that is supplied to the model.

Calcolo dello stato mancanteCalculation of the Missing State

Per l'algoritmo di data mining, i valori mancanti sono informativi.To the data mining algorithm, missing values are informative. Nelle tabelle del case, Missing è uno stato valido come qualsiasi altro.In case tables, Missing is a valid state like any other. Inoltre, in un modello di data mining possono essere utilizzati altri valori per stimare se un valore è mancante.Moreover, a data mining model can use other values to predict whether a value is missing. In altri termini, il fatto che un valore sia mancante non è un errore.In other words, the fact that a value is missing is not an error.

Quando si crea un modello di data mining, viene automaticamente aggiunto uno stato Missing per tutte le colonne discrete.When you create a mining model, a Missing state is automatically added to the model for all discrete columns. 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 .For example, if the input column [Gender] contains two possible values, Male and Female, a third value is automatically added to represent the Missing value, and the histogram that shows the distribution of all values for the column always includes a count of the cases with Missing values. Se nella colonna Gender non manca alcun valore, nell'istogramma viene mostrato che lo stato Missing è stato rilevato in 0 case.If the Gender column is not missing any values, the histogram shows that the Missing state is found in 0 cases.

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.The rationale for including the Missing state by default becomes clear when you consider that your data might not have examples of all possible values, and you would not want the model to exclude the possibility just because there was no example in the data. 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.For example, if sales data for a store showed that all customers who purchased a certain product happened to be women, you would not want to create a model that predicts that only women could purchase the product. In Analysis ServicesAnalysis Services viene invece aggiunto un segnaposto per il valore sconosciuto aggiuntivo, denominato Missing, in modo da tenere conto di altri stati possibili.Instead, Analysis ServicesAnalysis Services adds a placeholder for the extra unknown value, called Missing, as a way of accommodating possible other states.

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.For example, the following table shows the distribution of values for the (All) node in the decision tree model created for the Bike Buyer tutorial. Nello scenario di esempio la colonna [Bike Buyer] rappresenta l'attributo stimabile, dove 1 indica "Sì" e 0 indica "No".In the example scenario, the [Bike Buyer] column is the predictable attribute, where 1 indicates "Yes" and 0 indicates "No".

ValoreValue CasiCases
00 92969296
11 90989098
MissingMissing 00

Tramite questa distribuzione viene indicato che circa la metà dei clienti ha acquistato una bicicletta, mentre l'altra metà no.This distribution shows that about half of the customers have purchased a bike, and half have not. Questo specifico set di dati è molto pulito. Ogni case ha pertanto un valore nella colonna [Bike Buyer] e il conteggio dei valori Missing è 0.This particular data set is very clean; therefore, every case has a value in the [Bike Buyer] column, and the count of Missing values is 0. Se nel campo [Bike Buyer] di un case è tuttavia presente un valore Null, in Analysis ServicesAnalysis Services tale riga viene conteggiata come un case con un valore Missing .However, if any case had a null in the [Bike Buyer] field, Analysis ServicesAnalysis Services would count that row as a case with a Missing value.

Se l'input è una colonna continua, il modello tabula due possibili stati per l'attributo: Existing e Missing.If the input is a continuous column, the model tabulates two possible states for the attribute: Existing and Missing. In altri termini, la colonna contiene un valore di un tipo di dati numerico oppure non contiene alcun valore.In other words, either the column contains a value of some numeric data type, or it contains no value. Per i case che contengono un valore, il modello calcola la media, la deviazione standard e altre statistiche significative.For cases that have a value, the model calculates mean, standard deviation, and other meaningful statistics. Per i case che non includono valori, il modello fornisce un conteggio dei valori Missing e adatta le stime di conseguenza.For cases that have no value, the model provides a count of the Missing vales and adjusts predictions accordingly. Il metodo per adattare la stima varia a seconda dell'algoritmo e viene descritto nella sezione seguente.The method for adjusting the prediction differs depending on the algorithm and is described in the following section.

Nota

Per gli attributi di una tabella nidificata, i valori mancanti non sono informativi.For attributes in a nested table, missing values are not informative. 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.For example, if a customer has not purchased a product, the nested Products table would not have a row corresponding to that product, and the mining model would not create an attribute for the missing product. 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.However, if you are interested in customers who have not purchased certain products, you can create a model that is filtered on the non-existence of the products in the nested table, by using a NOT EXISTS statement in the model filter. Per altre informazioni, vedere Applicare un filtro a un modello di data mining.For more information, see Apply a Filter to a Mining Model.

Adattamento della probabilità per gli stati mancantiAdjusting Probability for Missing States

Oltre al conteggio dei valori, in Analysis ServicesAnalysis Services viene eseguito il calcolo della probabilità di qualsiasi valore nel set di dati.In addition to counting values, Analysis ServicesAnalysis Services calculates the probability of any value across the data set. Lo stesso vale per il valore Missing .The same is true for the Missing value. Nella tabella seguente sono, ad esempio, illustrate le probabilità per i case dell'esempio precedente:For example, the following table shows the probabilities for the cases in the previous example:

ValoreValue CasiCases ProbabilitàProbability
00 92969296 50,55%50.55%
11 90989098 49,42%49.42%
MissingMissing 00 0,03%0.03%

Può sembrare strano che la probabilità del valore Missing venga calcolata come 0,03%, quando il numero di case è 0.It may seem odd that the probability of the Missing value is calculated as 0.03%, when the number of cases is 0. In realtà, si tratta di un comportamento previsto che consente al modello di gestire correttamente i valori non noti.In fact, this behavior is by design, and represents an adjustment that lets the model handle unknown values gracefully.

In generale, la probabilità viene calcolata dividendo i case utili per tutti quelli possibili.In general, probability is calculated as the favorable cases divided by all possible cases. 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.In this example, the algorithm computes the sum of the cases that meet a particular condition ([Bike Buyer] = 1, or [Bike Buyer] = 0), and divides that number by the total count of rows. Per tenere conto dei case Missing , viene tuttavia aggiunto 1 al numero di tutti i case possibili.However, to account for the Missing cases, 1 is added to the number of all possible cases. 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.As a result, the probability for the unknown case is no longer zero, but a very small number, indicating that the state is merely improbable, not impossible.

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.The addition of the small Missing value does not change the outcome of the predictor; however, it enables better modeling in scenarios where the historical data does not include all possible outcomes.

Nota

I provider di data mining gestiscono i valori mancanti in modi diversi.Data mining providers differ in the way they handle missing values. 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.For example, some providers assume that missing data in a nested column is sparse representation, but that missing data in a non-nested column is missing at random.

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.If you are certain that all outcomes are specified in your data and want to prevent probabilities from being adjusted, you should set the NOT_NULL modeling flag on the column in the mining structure.

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.Each algorithm, including custom algorithms that you may have obtained from a third-party plug-in, can handle missing values differently.

Gestione speciale di valori mancanti nei modelli di albero delle decisioniSpecial Handling of Missing Values in Decision Tree Models

L'algoritmo Microsoft Decision Trees calcola le probabilità per i valori mancanti in modo diverso rispetto ad altri algoritmi.The Microsoft Decision Trees algorithm calculates probabilities for missing values differently than in other algorithms. 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.Instead of just adding 1 to the total number of cases, the decision trees algorithm adjusts for the Missing state by using a slightly different formula.

In un modello di albero delle decisioni la probabilità dello stato Missing viene calcolata nel modo seguente:In a decision tree model, the probability of the Missing state is calculated as follows:

ProbabilitàStato = (ProbabilitàPrecedenteNodo) * (SupportoStato + 1) / (SupportoNodo + TotaleStati)StateProbability = (NodePriorProbability)* (StateSupport + 1) / (NodeSupport + TotalStates)

L'algoritmo Decision Trees fornisce un adattamento aggiuntivo che consente all'algoritmo di compensare la presenza di filtri nel modello, il che può comportare l'esclusione di molti stati durante il training.The Decision Trees algorithm provides an additional adjustment that helps the algorithm compensate for the presence of filters on the model, which may result in many states to be excluded during training.

In SQL Server 2017SQL Server 2017, se uno stato è presente durante il training ma ha supporto zero in un determinato nodo, viene eseguito l'adattamento standard.In SQL Server 2017SQL Server 2017, if a state is present during training but just happens to have zero support in a certain node, the standard adjustment is made. Tuttavia, se uno stato non viene mai rilevato durante il training, l'algoritmo consente di impostare la probabilità esattamente su zero.However, if a state is never encountered during training, the algorithm sets the probability to exactly 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.This adjustment applies not only to the Missing state, but also to other states that exist in the training data but have zero support as result of model filtering.

Il risultato di questo adattamento aggiuntivo è la formula seguente:This additional adjustment results in the following formula:

StateProbability = 0.0 se tale stato ha supporto 0 nel set di trainingStateProbability = 0.0 if that state has 0 support in the training set

ELSE ProbabilitàStato = (ProbabilitàPrecedenteNodo) * (SupportoStato + 1) / (SupportoNodo + TotaleStatiConSupportoNonZeroELSE StateProbability = (NodePriorProbability)* (StateSupport + 1) / (NodeSupport + TotalStatesWithNonZeroSupport)

L'effetto finale di questo adattamento è di mantenere la stabilità dell'albero.The net effect of this adjustment is to maintain the stability of the tree.

Negli argomenti seguenti vengono fornite ulteriori informazioni sulla gestione dei valori mancanti.The following topics provide more information about how to handle missing values.

AttivitàTasks CollegamentiLinks
Aggiungere flag alle singole colonne del modello per controllare la gestione dei valori mancantiAdd flags to individual model columns to control handling of missing values Visualizzare o modificare flag di modellazione (Data mining)View or Change Modeling Flags (Data Mining)
Impostare le proprietà su un modello di data mining per controllare la gestione dei valori mancantiSet properties on a mining model to control handling of missing values Modificare le proprietà di un modello di data miningChange the Properties of a Mining Model
Informazioni sulla specificazione di flag di modellazione in DMXLearn how to specify modeling flags in DMX Flag di modellazione (DMX)Modeling Flags (DMX)
Modificare la modalità di gestione dei valori mancanti da parte della struttura di data miningAlter the way that the mining structure handles missing values Modificare le proprietà di una struttura di data miningChange the Properties of a Mining Structure

Vedere ancheSee Also

Contenuto del modello di data mining (Analysis Services-)di data mining Mining Model Content (Analysis Services - Data Mining)
Flag di modellazione (data mining)Modeling Flags (Data Mining)