Verificare la presenza di dati mancanti nei notebook
Per dati mancanti si intende l'assenza di valori in determinate variabili all'interno di un set di dati.
L'identificazione e la gestione dei dati mancanti è un aspetto fondamentale della fase di esplorazione e pre-elaborazione dei dati in un progetto di Machine Learning e il modo in cui è possibile gestirli può influire significativamente sulle prestazioni del modello.
I passaggi principali per gestire i dati mancanti includono la valutazione della quantità di dati mancanti, l'identificazione della natura dei dati mancanti e la scelta del metodo migliore per gestire i valori di dati mancanti.
Identificare i dati mancanti
Per identificare se sono presenti dati mancanti nel set di dati, è possibile usare le funzioni isnull() o isna() da Pandas.
import pandas as pd
import numpy as np
# Create a sample DataFrame with some missing values
data = {
'A': [1, 2, np.nan],
'B': [4, np.nan, np.nan],
'C': [7, 8, 9]
}
df = pd.DataFrame(data)
# Check for missing data
print(df.isnull())
Risultati:
A B C
0 False False False
1 False True False
2 True True False
In questo modo viene restituito un dataframe con le stesse dimensioni di df, ma con True nelle posizioni in cui mancano valori (NaN) e False altrove.
Per ottenere il numero totale di valori mancanti nel dataframe, è possibile usare df.isnull().sum(). Verrà restituito il numero di valori mancanti per ogni colonna.
df.isnull().sum()
Risultati:
A 1
B 2
C 0
dtype: int64
Valutare la natura dei valori mancanti
In un progetto di data science i valori mancanti possono verificarsi per diversi motivi e comprendere la loro natura è fondamentale per gestirli in modo appropriato.
Ecco alcuni tipi di valori mancanti:
Mancante completamente a caso (MCAR): la mancanza di dati non è correlata ai valori di qualsiasi altra variabile ed è casuale. Questo è lo scenario ideale, ma spesso non è il caso nei dati reali.
Mancante in modo casuale (MAR): la mancanza di dati è correlata ad altri valori delle variabili, ma non ai dati mancanti. Ad esempio, se le donne sono più propense a divulgare il loro numero di passaggi giornalieri rispetto agli uomini, i dati dei passaggi giornalieri sono MAR.
Mancanza non casuale (MNAR): la mancanza di dati è correlata ai valori stessi dei dati mancanti. Ad esempio, le persone con salari più elevati potrebbero essere meno propensi a divulgare il loro reddito. La rimozione di questi record potrebbe introdurre distorsioni nel modello, impedendogli di riflettere in modo accurato le informazioni complete contenute nei dati.
Comprendere la natura dei valori mancanti nel set di dati può guidarti su come gestirli. Per MCAR e MAR, è possibile scegliere metodi di eliminazione o imputazione. Per MNAR, questi metodi potrebbero introdurre distorsioni, quindi potrebbe essere preferibile raccogliere più dati o usare metodi basati su modello in grado di gestire i valori mancanti.
Decidere come gestire i dati mancanti
L'approccio alla gestione dei dati mancanti può influire significativamente sui risultati dell'analisi e sulle prestazioni del modello. Ecco alcune strategie che potresti prendere in considerazione.
Ignorare: Se manca solo una piccola quantità di dati, potrebbe non avere un impatto significativo sulle prestazioni del modello.
Togliere: Se una determinata riga o colonna contiene molti valori mancanti, potrebbe essere preferibile rimuoverla completamente.
Imputare: completare i valori mancanti con un valore specificato o una stima come media, mediana, moda, o usando un algoritmo di apprendimento automatico come K-Nearest Neighbors (KNN).
Usarli come nuova caratteristica: a volte, il fatto che un valore non sia presente può essere usato come informazione. Ad esempio, in un sondaggio su un prodotto, le domande senza risposta relative alla volontà di raccomandare il prodotto ad altri potrebbero indicare l'insoddisfazione dei clienti. In questo caso, la mancata risposta può essere una nuova caratteristica che indica una probabile insoddisfazione dei clienti.
Non esiste una soluzione universale per la gestione dei dati mancanti. L'approccio migliore dipende dalle specifiche del set di dati e dalla domanda a cui si sta tentando di rispondere.