Pulire i dati mancanti

Importante

Il supporto dello studio di Azure Machine Learning (versione classica) terminerà il 31 agosto 2024. È consigliabile passare ad Azure Machine Learning entro tale data.

A partire dal 1° dicembre 2021 non sarà possibile creare nuove risorse dello studio di Azure Machine Learning (versione classica). Fino al 31 agosto 2024 sarà possibile continuare a usare le risorse dello studio di Azure Machine Learning (versione classica).

La documentazione relativa allo studio di Machine Learning (versione classica) è in fase di ritiro e potrebbe non essere aggiornata in futuro.

Specifica come gestire i valori mancanti di un set di dati

Categoria: Trasformazione/Manipolazione dei dati

Nota

Si applica a: Machine Learning Studio (versione classica)

Nella finestra di progettazione sono disponibili moduli simili Azure Machine Learning trascinamento della selezione.

Panoramica del modulo

Questo articolo descrive come usare il modulo Clean Missing Data (Pulisci dati mancanti) in Machine Learning Studio (versione classica) per rimuovere, sostituire o dedurre i valori mancanti.

I data scientist spesso verificano la presenza di valori mancanti nei dati e quindi eseguono varie operazioni per correggere i dati o inserire nuovi valori. L'obiettivo di tali operazioni di pulizia è evitare problemi causati da dati mancanti che possono verificarsi durante il training di un modello.

Questo modulo supporta più tipi di operazioni per la "pulizia" dei valori mancanti, tra cui:

  • Sostituzione dei valori mancanti con un segnaposto, una media o un altro valore
  • Rimozione completa di righe e colonne con valori mancanti
  • Deduzione di valori in base a metodi statistici

Suggerimento

Se non si ha esperienza di Machine Learning, Questo articolo fornisce una spiegazione dettagliata del motivo per cui è necessario usare ognuno dei diversi metodi per sostituire i valori mancanti: Metodi per la gestione dei valori mancanti

L'uso di questo modulo non modifica il set di dati di origine. Viene invece creato un nuovo set di dati nell'area di lavoro che è possibile usare nel flusso di lavoro successivo. È anche possibile salvare il nuovo set di dati pulito per il riutilizzo.

Questo modulo restituisce anche una definizione della trasformazione usata per pulire i valori mancanti. È possibile usare di nuovo questa trasformazione in altri set di dati con lo stesso schema usando il modulo Applica trasformazione.

Come usare Pulisci dati mancanti

Questo modulo consente di definire un'operazione di pulizia. È anche possibile salvare l'operazione di pulizia in modo da poterla applicare in un secondo momento ai nuovi dati. Per una descrizione di come creare e salvare un processo di pulizia, vedere i collegamenti seguenti:

Importante

Il metodo di pulizia utilizzato per la gestione dei valori mancanti può influire notevolmente sui risultati. È consigliabile provare a usare metodi diversi. Considerare sia la giustificazione per l'uso di un metodo specifico che la qualità dei risultati.

Sostituire valori mancanti

Ogni volta che si applica il modulo Clean Missing Data a un set di dati, la stessa operazione di pulizia viene applicata a tutte le colonne selezionate. Pertanto, se è necessario pulire colonne diverse usando metodi diversi, usare istanze separate del modulo.

  1. Aggiungere il modulo Clean Missing Data (Pulisci dati mancanti) all'esperimento e connettere il set di dati con valori mancanti.

  2. Per Colonne da pulire, scegliere le colonne che contengono i valori mancanti da modificare. È possibile scegliere più colonne, ma è necessario usare lo stesso metodo di sostituzione in tutte le colonne selezionate. Di conseguenza, in genere è necessario pulire separatamente le colonne stringa e le colonne numeriche.

    Ad esempio, per verificare la presenza di valori mancanti in tutte le colonne numeriche:

    1. Aprire il selettore di colonna e selezionare WITH RULES.

    2. Per BEGIN WITH selezionare NO COLUMNS.

      È anche possibile iniziare con ALL COLUMNS e quindi escludere le colonne. Inizialmente, le regole non vengono visualizzate se si fa prima clic su TUTTE LE COLONNE, ma è possibile fare clic su NO COLUMNS e quindi fare di nuovo clic su TUTTE LE COLONNE per iniziare con tutte le colonne e quindi filtrare (escludere) le colonne in base al nome, al tipo di dati o all'indice delle colonne.

    3. Per Includi selezionare Tipo di colonna nell'elenco a discesa e quindi selezionare Numerico o un tipo numerico più specifico.

    Qualsiasi metodo di pulizia o sostituzione scelto deve essere applicabile a tutte le colonne nella selezione. Se i dati in una colonna non sono compatibili con l'operazione specificata, il modulo restituisce un errore e arresta l'esperimento.

  3. Per Rapporto minimo valori mancanti specificare il numero minimo di valori mancanti necessari per l'esecuzione dell'operazione.

    Usare questa opzione in combinazione con Rapporto massimo valori mancanti per definire le condizioni in cui viene eseguita un'operazione di pulizia sul set di dati. Se sono presenti troppe o troppe righe con valori mancanti, l'operazione non può essere eseguita.

    Il numero immesso rappresenta il rapporto tra i valori mancanti e tutti i valori nella colonna. Per impostazione predefinita, la proprietà Rapporto minimo valori mancanti è impostata su 0. Ciò significa che i valori mancanti vengono puliti anche se manca un solo valore. Per un esempio di come usare questa opzione, vedere Impostazione di una soglia per le operazioni di pulizia.

    Avviso

    Questa condizione deve essere soddisfatta da ogni colonna per consentire l'applicazione dell'operazione specificata. Si supponga, ad esempio, di aver selezionato tre colonne e quindi di impostare il rapporto minimo di valori mancanti su 0,2 (20%), ma che solo una colonna abbia effettivamente il 20% di valori mancanti. In questo caso, l'operazione di pulizia si applica solo alla colonna con oltre il 20% di valori mancanti. Pertanto, le altre colonne rimangono invariate.

    In caso di dubbi sulla modifica o meno dei valori mancanti, selezionare l'opzione Generate missing value indicator column. Una colonna viene aggiunta al set di dati per indicare se ogni colonna soddisfa o meno i criteri specificati per gli intervalli minimo e massimo.

  4. Per Rapporto massimo valori mancanti specificare il numero massimo di valori mancanti che possono essere presenti per l'operazione da eseguire.

    Ad esempio, è possibile eseguire la sostituzione di valori mancanti solo se il 30% o meno delle righe contiene valori mancanti, ma lasciare i valori così come sono se più del 30% delle righe ha valori mancanti.

    È possibile definire il numero come rapporto tra i valori mancanti e tutti i valori della colonna. Per impostazione predefinita, il rapporto massimo di valori mancanti è impostato su 1. Ciò significa che i valori mancanti vengono puliti anche se manca il 100% dei valori nella colonna.

    Nota

    Quando si imposta una soglia usando le opzioni Rapporto minimo valori mancanti o Rapporto massimo valori mancanti, l'operazione di pulizia non può essere eseguita se anche una delle colonne selezionate non soddisfa i criteri.

  5. Per Modalità pulizia selezionare una delle opzioni seguenti per sostituire o rimuovere i valori mancanti:

    • Sostituisci con MICE: per ogni valore mancante, questa opzione assegna un nuovo valore, calcolato usando un metodo descritto nella documentazione statistica come "Imputazione multivariata tramite equazioni concatenate" o "Imputazione multipla da equazioni concatenate". Con un metodo di imputazione multiplo, ogni variabile con dati mancanti viene modellata in modo condizionale usando le altre variabili nei dati prima di compilare i valori mancanti. Al contrario, in un singolo metodo di imputazione ,ad esempio la sostituzione di un valore mancante con una media di colonna, viene effettuato un singolo passaggio sui dati per determinare il valore di riempimento.

      Tutti i metodi di imputazione introducono alcuni errori o distorsioni, ma più imputazione simulano meglio il processo che genera i dati e la distribuzione delle probabilità dei dati.

      Per un'introduzione generale ai metodi per la gestione dei valori mancanti, vedere Missing Data: the state of the art (Dati mancanti: lo stato dell'arte). Schafer eCipio, 2002.

      Avviso

      Questa opzione non può essere applicata a colonne completamente vuote. Tali colonne devono essere rimosse o passate all'output così come sono.

    • Valore di sostituzione personalizzato: usare questa opzione per specificare un valore segnaposto (ad esempio 0 o NA) che si applica a tutti i valori mancanti. Il valore specificato come sostituzione deve essere compatibile con il tipo di dati della colonna.

    • Sostituisci con media: calcola la media della colonna e usa la media come valore di sostituzione per ogni valore mancante nella colonna.

      Si applica solo alle colonne con tipi di dati Integer, Double o Boolean. Per altre informazioni, vedere la sezione Note tecniche.

    • Sostituisci con mediana: calcola il valore mediano della colonna e usa il valore mediano come sostituzione per qualsiasi valore mancante nella colonna.

      Si applica solo alle colonne con tipi di dati Integer o Double. Per altre informazioni, vedere la sezione Note tecniche.

    • Sostituisci con modalità: calcola la modalità per la colonna e usa la modalità come valore di sostituzione per ogni valore mancante nella colonna.

      Si applica alle colonne con tipi di dati Integer, Double, Boolean o Categorical. Per altre informazioni, vedere la sezione Note tecniche.

    • Rimuovi l'intera riga: rimuove completamente qualsiasi riga nel set di dati con uno o più valori mancanti. Ciò è utile se il valore mancante può essere considerato mancante in modo casuale.

    • Rimuovi intera colonna: rimuove completamente tutte le colonne del set di dati con uno o più valori mancanti.

    • Sostituisci con PCA probabilistico: sostituisce i valori mancanti usando un modello lineare che analizza le correlazioni tra le colonne e stima un'approssimazione dimensionale bassa dei dati, da cui vengono ricostruiti i dati completi. La riduzione della dimensionalità sottostante è una forma probabilistica dell'analisi del componente principale (PCA, Principal Component Analysis) e implementa una variante del modello proposta nel Journal of the Royal Statistical Society, serie B 21 (3), 611–622 di Tipping e Bishop.

      Rispetto ad altre opzioni, ad esempio Multiple Imputation using Chained Equations (MICE), questa opzione ha il vantaggio di non richiedere le applicazioni dei predittori per ogni colonna. Al contrario, offre un'approssimazione della covarianza per il set di dati completo. Pertanto, potrebbe offrire prestazioni migliori per i set di dati con valori mancanti in molte colonne.

      Le limitazioni principali di questo metodo sono che espande le colonne di categoria in indicatori numerici e calcola una matrice di covarianza ad alta densità dei dati risultanti. Inoltre non è ottimizzato per le rappresentazioni di tipo sparse. Per questi motivi, i set di dati con un numero elevato di colonne e/o domini categorici (decine di migliaia) non sono supportati a causa dell'utilizzo eccessivo di spazio.

      Suggerimento

      Tenere presente che il metodo scelto viene applicato a tutte le colonne nella selezione. Pertanto, se si desidera sostituire alcuni valori mancanti con zeri in alcune colonne ma inserire un segnaposto in altre colonne, è consigliabile usare Seleziona colonne nel set di dati per separare i dati e usare istanze diverse del modulo Clean Missing Data .

  6. L'opzione Valore di sostituzione è disponibile se è stata selezionata l'opzione Custom substitution value (Valore sostituzione personalizzata). Consente di digitare un nuovo valore da utilizzare come valore di sostituzione per tutti i valori mancanti nella colonna.

    Si noti che è possibile usare questa opzione solo nelle colonne con i tipi di dati Integer, Double, Booleano Date. Per le colonne data, il valore di sostituzione può anche essere immesso come numero di cicli di 100 nanosecondi trascorsi dal 1/1/0001 12:00.

  7. Genera colonna indicatore valore mancante: selezionare questa opzione se si desidera visualizzare un'indicazione che indica se i valori nella colonna soddisfano i criteri per la pulizia dei valori mancanti. Questa opzione è particolarmente utile quando si configura una nuova operazione di pulizia e si vuole assicurarsi che funzioni come previsto.

  8. Eseguire l'esperimento oppure selezionare il modulo Clean Missing Data (Pulisci dati mancanti) e fare clic su Run selected (Esegui selezionato).

Risultati

Il modulo restituisce due output:

  • Set di dati pulito: set di dati costituito da colonne selezionate, con valori mancanti gestiti come specificato, insieme a una colonna indicatore, se è stata selezionata l'opzione.

    Anche le colonne non selezionate per la pulizia vengono "passate attraverso".

  • Trasformazione pulizia: trasformazione dei dati usata per la pulizia, che può essere salvata nell'area di lavoro e applicata ai nuovi dati in un secondo momento.

Applicare un'operazione di pulizia salvata ai nuovi dati

Se è necessario ripetere spesso le operazioni di pulizia, è consigliabile salvare la ricetta per la pulizia dei dati come trasformazione, per riutilizzarla con lo stesso set di dati. Il salvataggio di una trasformazione di pulizia è particolarmente utile se è necessario reimportare di frequente e quindi pulire i dati con lo stesso schema.

  1. Aggiungere il modulo Apply Transformation (Applica trasformazione) all'esperimento.

  2. Aggiungere il set di dati da pulire e connettere il set di dati alla porta di input a destra.

  3. Espandere il gruppo Trasformazioni nel riquadro sinistro di Studio (versione classica). Individuare la trasformazione salvata e trascinarla nell'esperimento.

  4. Connessione la trasformazione salvata alla porta di input sinistra di Applica trasformazione.

    Quando si applica una trasformazione salvata, non è possibile selezionare le colonne a cui viene applicata la trasformazione. Ciò è dovuto al fatto che la trasformazione è già stata definita e viene applicata automaticamente ai tipi di dati specificati nell'operazione originale.

    Si supponga tuttavia di aver creato una trasformazione su un subset di colonne numeriche. È possibile applicare questa trasformazione a un set di dati di tipi di colonna misti senza generare un errore, perché i valori mancanti vengono modificati solo nelle colonne numeriche corrispondenti.

  5. Eseguire l'esperimento.

Esempio

Vedere gli esempi relativi all'uso di questo modulo nel Azure AI Gallery:

Note tecniche

Questa sezione contiene informazioni dettagliate sull'implementazione, nonché problemi noti e domande frequenti.

  • Si verifica un errore se viene usata l'opzione relativa alla media o al valore mediano quando viene selezionata una colonna stringa. Se è necessario elaborare colonne di tipi di dati diversi, creare due istanze di Clean Missing Data.

  • Quando si sostituiscono valori mancanti con un valore medio nelle colonne con i tipi di dati Boolean, Integer, DateTime o TimeSpan, la colonna viene prima convertita in numeri a virgola mobile, viene calcolata la media e quindi il risultato viene arrotondato al valore più vicino del tipo di dati originale.

  • Quando si digita un valore di sostituzione, il valore deve essere compatibile con il tipo di dati nella colonna selezionata.

  • I valori NaNdi , Infe sono –Inf consentiti per le colonne in cui il tipo di dati è Double.

  • Quando si usa il metodo MICE, la stima del valore di sostituzione viene eseguita con il modello MICE con training.

  • L'uso di Pulisci dati mancanti può ripristinare la funzionalità di altri tipi di colonna. Se i dati contengono altri tipi di colonne, ad esempio le etichette, usare Modifica metadati per correggere i tipi di colonna.

Restrizioni sull'uso delle trasformazioni di pulizia

Quando si usa una trasformazione salvata (basata su Pulisci dati mancanti) per i nuovi dati, si applicano le restrizioni seguenti:

  • Una trasformazione salvata non può generare valori indicatore, anche se questa opzione è stata utilizzata nell'operazione di pulizia originale. Considerare i valori dell'indicatore più utili durante il test di una nuova trasformazione.

  • La trasformazione non calcola nuovi valori in base al nuovo set di dati. In altre parole, se è stata usata l'opzione Clean Missing Data on Dataset A (Pulisci dati mancanti nel set di dati A) e è stato generato un valore medio pari a 0,5, verrà applicato lo stesso valore della media per la sostituzione dei valori mancanti nel set di dati B, indipendentemente dai valori effettivi nel set di dati B.

  • Il tipo di dati delle colonne nel nuovo set di dati deve corrispondere al tipo di dati delle colonne in cui è stata originariamente creata la trasformazione. Se vengono eseguite operazioni sulla colonna che modificano in modo implicito il tipo di dati, viene generato un errore.

    Si supponga, ad esempio, di creare una media per una colonna di dati integer [Col1] e di salvare la trasformazione. A questo punto si vuole applicare la trasformazione pulizia a una copia di [Col1] che è stata modificata usando una formula, ad esempio ([Col1] /1.5). Per assicurarsi che il risultato sia un numero intero, arrotondare il risultato, ma viene comunque visualizzato un errore quando si applica la trasformazione. Tuttavia, se si modifica il valore usando una formula come ([Col 1] * 10), non viene generato alcun errore.

    Per evitare tali problemi, usare Modifica metadati per reimpostare in modo esplicito il tipo di dati su Integer. In generale, le operazioni nel modulo Applica operazione matematica modificano in modo implicito le colonne numeriche in double.

Impostazione e interpretazione dei valori soglia

Quando si specifica una soglia per le operazioni di pulizia usando le opzioni Rapporto minimo valori mancanti o Rapporto massimo valori mancanti, i risultati possono essere imprevisti o confusi. Per illustrare il funzionamento delle opzioni per i valori mancanti massimi e minimi, sono stati forniti alcuni esempi del set di dati di esempio Automobile Prices , che contiene molte colonne con valori mancanti.

La tabella seguente illustra il conteggio dei valori mancanti per diverse colonne nel set di dati, insieme al rapporto tra i valori mancanti calcolati nel set di dati. Il rapporto tra i valori mancanti (nella colonna più a destra) è il valore che verrà usato nella valutazione del set di dati rispetto ai valori soglia specificati.

Si supponga di impostare Rapporto minimo valori mancanti su 0,019 e di impostare Rapporto massimo valori mancanti su 0,020. Data la tabella di valori seguente, alcune colonne soddisfano i criteri di soglia e altre no:

  • Le colonne e bore soddisfano stroke i criteri di soglia.
  • Le colonne normalized-losses e compression-ratio non soddisfano i criteri di soglia.
Nome colonna Numero di valori mancanti Rapporto di valori mancanti
Normalized-losses 41 0,2
Bore 4 0.019512195
Stroke 4 0.019512195
Rapporto di compressione 0 0

Poiché alcune colonne nella selezione non soddisfano i criteri specificati, non è stata eseguita alcuna operazione di pulizia su alcuna colonna. Per capire cosa è successo, il modulo restituisce il valore FALSE nelle due colonne indicatore, bore_IsMissing e stroke_IsMissing.

Tuttavia, se si modifica nuovamente la soglia ai valori predefiniti 0 per Rapporto minimo valori mancanti e 1 per Rapporto massimo valori mancanti, viene restituita una colonna indicatore per tutte le colonne selezionate e viene eseguita l'operazione specificata.

Suggerimento

Se non si è incerti sul fatto che la pulizia dei valori mancanti funzioni come previsto, selezionare l'opzione Genera indicatore di valore mancante .

Problemi noti

Se si usa il metodo MICE per pulire i dati e quindi elaborare un set di dati che contiene valori mancanti, è possibile che venga visualizzato l'errore seguente: "Eccezione della libreria AFx: Il training del modello non è stato creato. ( Errore 1000 )"

Questo errore si verifica solo quando si seleziona il metodo MICE e se il set di dati di training non contiene valori mancanti, ma il set di dati di test lo fa.

Input previsti

Nome Tipo Descrizione
Set di dati Tabella dati Set di dati da pulire

Parametri del modulo

Nome Intervallo Type Predefinito Descrizione
Columns to be cleaned Qualsiasi ColumnSelection Tutti Selezionare le colonne per l'operazione di pulizia dei valori mancanti.
Minimum missing value ratio [0,0;1,0] Float 0,0 Pulisci solo la colonna con rapporto di valori mancanti al di sopra del valore specificato, da un set di tutte le colonne selezionate.
Maximum missing value ratio [0,0;1,0] Float 1,0 Pulisce solo le colonne con il rapporto di valori mancanti al di sotto del valore specificato, escluso il set di tutte le colonne selezionate.
Cleaning mode Elenco Handling policy Valore di sostituzione personalizzato Scegliere un algoritmo da usare per la pulizia dei valori mancanti.
Valore di sostituzione Qualsiasi string "0" Digitare un valore che sostituisca i valori mancanti.

Questo valore è facoltativo.
Cols with all missing values Qualsiasi ColumnsWithAllValuesMissing Rimuovi Indica se le colonne con tutti i valori mancanti devono essere mantenute nell'output.
Generate missing value indicator column Qualsiasi Boolean false Genera una colonna che indica le righe che sono state pulite.
Number of iterations [1;10] Integer 5 Specifica il numero di iterazioni quando si usa il metodo MICE.
Number of iterations for PCA prediction [1;50] Integer 10 Specifica il numero di iterazioni quando si usa la stima PCA.

Output

Nome Tipo Descrizione
Set di dati pulito Tabella dati Set di dati pulito
Trasformazione di pulizia Interfaccia ITransform Trasformazione da passare al modulo Apply Transformation per pulire i nuovi dati.

Eccezioni

Eccezione Descrizione
Errore 0002 Si verifica un'eccezione se non è stato possibile analizzare o convertire uno o più parametri dal tipo specificato nel tipo richiesto dal metodo di destinazione.
Errore 0003 Si verifica un'eccezione se uno o più set di dati di input sono Null o vuoti.
Errore 0008 Si verifica un'eccezione se un parametro non è compreso nell'intervallo.
Errore 0013 Si verifica un'eccezione che se lo strumento di apprendimento passato al modulo è di tipo non valido.
Errore 0018 Si verifica un'eccezione se il set di dati di input non è valido.
Errore 0039 Si verifica un'eccezione se l'operazione ha esito negativo.

Per un elenco di errori specifici dei moduli di Studio (versione classica), vedere l'Machine Learning codici di errore.

Per un elenco delle eccezioni API, vedere l'Machine Learning di errore dell'API REST.

Vedi anche

Manipolazione
Trasformazioni dei dati
Elenco moduli A-Z