Imputazione di valori nulli
Troppi valori mancanti potrebbero avere un impatto negativo sulla qualità del modello di machine learning. L'imputazione è la pratica di riempire i valori mancanti, noti come valori nulli. I dati mancanti possono essere dovuti a diversi motivi, come ad esempio un errore del database, un utente che non compila una parte del modulo o forse si iniziano a raccogliere nuovi dati e i record più vecchi del set di dati non contengono il nuovo punto dati.
È importante comprendere gli effetti che l'imputazione potrebbe avere sui dati. L'imputazione mantiene il potere di previsione della riga o della colonna, ma ha anche il potenziale di creare modelli che non esistevano in precedenza o di aggiungere rumore a un modello esistente. Ciò riduce la validità dei dati.
Si potrebbe voler rivedere le proprie pratiche di raccolta dei dati per assicurarne il completamento e per implementare nuovi processi, se necessario. Se si vuole mantenere la rappresentazione di un valore vuoto, è possibile riempire i nulli con un valore come "altro" o "sconosciuto".
Imputazione NULL durante la pre-elaborazione automatica
In Qlik AutoML, la pre-elaborazione automatica dei dati utilizza l'imputazione nulla per preparare il set di dati per l'addestramento. Durante la preelaborazione automatica dei dati, i valori nulli vengono gestiti escludendo le colonne a cui manca più del 50% dei valori e imputando i valori mancanti. I valori mancanti nelle funzioni categoriche sono imputati con il valore "altro" e i valori mancanti nelle funzioni numeriche sono imputati con la media.
Considerazioni aggiuntive valgono per le funzioni progettate automaticamente e l'addestramento sensibile ai valori temporali.
Per altre informazioni sul processo di pre-elaborazione, vedere Preparazione e trasformazione automatica dei dati.
Ingegneria automatica delle funzioni
Con la progettazione automatica delle funzioni, AutoML crea nuove funzioni dalle funzioni padre esistenti. Per le funzioni progettate automaticamente, l'imputazione nulla viene eseguita come segue:
-
Se nell'addestramento si includono funzioni di data progettate automaticamente, il processo di imputazione nulla per queste funzioni è lo stesso di quello per le funzioni numeriche.
-
Se invece si utilizzano le funzioni di data padre, il processo di imputazione nulla è lo stesso che si applica alle funzioni categoriche.
-
Per le funzioni categoriche trattate come testo libero, l'imputazione nulla è la stessa che per le funzioni categoriche.
Addestramento sensibile ai valori temporali
Se l'addestramento sensibile ai valori temporali è attivo, l'imputazione nulla viene eseguita come segue:
-
Le righe del training set che presentano un valore nullo per l'indicizzazione della data selezionata vengono rimosse durante la pre-elaborazione. Queste righe non vengono utilizzate per addestrare i modelli.
-
Per le funzioni numeriche, l'imputazione nulla viene eseguita con interpolazione lineare. L'interpolazione lineare viene utilizzata anche per le funzioni di data progettate automaticamente.
-
Per le funzioni categoriche, il processo di imputazione nulla è lo stesso quando non si utilizza l'addestramento sensibile ai valori temporali.
-
Se si utilizzano le funzioni di data senza la progettazione automatica delle funzioni, il processo di imputazione nulla è lo stesso che si applica alle funzioni categoriche.
-
Per le funzioni categoriche trattate come testo libero, l'imputazione nulla è la stessa che per le funzioni categoriche.
Per altri dettagli sull'addestramento sensibile ai valori temporali, consultare Creazione di modelli sensibili ai valori temporali.
Come funziona l'imputazione
I metodi seguenti sono pratiche comuni per l'imputazione dei valori nulli.
Valori numerici
Una buona soluzione predefinita è quella di imputare il valore medio. Se i valori mancanti sono distribuiti normalmente, è come aggiungere peso al centro di un'altalena: non influisce sul peso di entrambi i lati. Tuttavia, è necessario considerare sempre ciò che il valore sta cercando di rappresentare. Ad esempio, se alcuni valori del prezzo di vendita sono nulli nei dati di vendita, si tratta di un errore del database o l'acquirente ha utilizzato un coupon come pagamento? Uno 0, o un altro valore diverso dalla media, avrebbe più senso?
Valori categoriali
Una buona soluzione predefinita per i valori categoriali è quella di aggiungere un'altra categoria e chiamarla "Altro", "Sconosciuto" o anche "Mancante". Questa categoria può contenere la varianza aggiuntiva se i valori mancanti sono distribuiti in modo casuale, oppure aumentare l'importanza della caratteristica se esiste una relazione significativa tra la mancanza di quel valore e il valore target.
Un ripiego è quello di imputare la media sotto forma di modalità. Come per i valori numerici, è sempre importante considerare sia ciò che il valore sta effettivamente cercando di rappresentare sia il motivo per cui il valore potrebbe essere mancante. Sapendo che la maggior parte dei valori mancanti è probabilmente composta dalla modalità, è possibile imputarla. Se non è nota o c'è incertezza, è possibile imputare il valore categoriale con un testo di riempimento che rappresenta un nuovo valore unico per il set di dati.
Effetti dell'imputazione di valori numerici
L'imputazione numerica 1 mostra un grafico a dispersione con una linea di best fit. Abbiamo un valore numerico lungo l'asse delle categorie (x) e un valore target lungo l'asse dei valori (y). Sembra essere un buon adattamento, ma prende in considerazione solo i punti dei dati in cui x è noto.
Nell'imputazione numerica 2, abbiamo imputato il valore medio. Tuttavia, i valori mancanti non sembrano essere casuali. Ciò finisce per distorcere la linea di best fit e aggiunge rumore, riducendo così l'accuratezza complessiva del modello.
Il grafico in Imputazione numerica 3 mostra come apparirebbe l'imputazione della media quando i valori mancanti sono distribuiti in modo casuale. In altre parole, quando non c'è alcuna conoscenza aggiuntiva da acquisire sapendo se il valore era presente o mancante. Quando i valori mancanti sono distribuiti in modo casuale, la linea di best fit non cambia. Se avessimo imputato 0 al posto del valore medio, avremmo modificato la linea di best fit in modo simile a quanto visto per l'imputazione numerica 2.
Esempio: qualificazione del prestito
Un esempio del mondo reale sarebbe se x fosse il reddito annuale e y l'importo per il quale una persona potrebbe ottenere un prestito. Ci aspetteremmo una relazione in cui più soldi si guadagnano, più soldi si possono prendere in prestito. Lo schema sarebbe simile a quello dell'imputazione numerica 1 di cui sopra.
Immaginare che le persone che guadagnano meno siano meno propense a fornire il loro reddito annuale. In questo caso, il valore x manca per un motivo specifico. L'imputazione della media per questi valori distorcerebbe i risultati del modello. Il risultato sarebbe simile all'Imputazione numerica 2.
Si consideri ora che alcuni record del database sono stati eliminati in modo casuale. I registri contenevano dati sulla quantità di denaro guadagnato da alcune persone, ma non i dati relativi alla persona. Quindi il valore x è casualmente nullo. Questo effetto è illustrato nell'Imputazione numerica 3 ed è un caso in cui possiamo imputare con sicurezza il valore mancante.
Un altro aspetto da considerare è: cosa succederebbe se al posto della media venisse imputato 0? Nell'esempio di qualificazione del prestito, probabilmente non è una rappresentazione accurata dire che qualcuno guadagna 0 dollari all'anno. Questo modello subirebbe una distorsione simile a quella dell'imputazione numerica 2.
Effetti dell'imputazione dei valori categoriali
Nel caso numerico precedente, abbiamo utilizzato la media per imputare i valori mancanti. Un metodo semplice per i valori categoriali è quello di prendere la modalità, ovvero il valore più frequente. Alcune delle sfide presenti nell'imputazione della modalità sono le stesse dell'imputazione della media per un valore numerico.
Nel grafico qui sotto, i valori mancanti in Missing_1 sono distribuiti in modo casuale rispetto al target, mentre Missing_2 è distribuito in modo casuale. Questo è possibile perché Missing_2 corrisponde al valore target medio complessivo. Missing_1 è simile all'imputazione numerica 2 e Missing_2 è simile all'imputazione numerica 3.
La differenza rispetto all'esempio numerico è che in questo caso Missing_1 e Missing_2 distorcono entrambi il riconoscimento del modello. La distorsione si verifica solo per un sottoinsieme di dati, la categoria B, che sarebbe il valore imputato se l'imputazione avvenisse con la modalità, perché è la categoria più grande.
La distorsione della relazione tra un singolo valore e il valore target non è l'unico rischio dell'imputazione, ma è tra i più comuni e più facili da valutare. Altri rischi tendono semplicemente ad aggiungere rumore e a ridurre l'accuratezza. Fortunatamente, il rischio di distorsione può essere notevolmente attenuato eliminando le dimensioni con sparsità relativa. Spesso si discute su quali siano i livelli di sparsità da consentire in una colonna o in una riga, ma meno spesso si discute sul fatto che l'imputazione dei valori può potenzialmente distorcere i dati, in modo da renderli non più rappresentativi di ciò che i dati cercano di descrivere.