Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Sfida: Imputazione dei Valori Mancanti | Preprocessing Dei Dati con Scikit-learn
Introduzione al ML con Scikit-Learn

bookSfida: Imputazione dei Valori Mancanti

La classe SimpleImputer è progettata per gestire i dati mancanti sostituendo automaticamente i valori mancanti.

from sklearn.impute import SimpleImputer
imputer = SimpleImputer()

Al momento dell'inizializzazione, può essere personalizzata impostando i suoi parametri:

  • missing_value: specifica il segnaposto per i valori mancanti. Per impostazione predefinita, è np.nan;
  • strategy: la strategia utilizzata per imputare i valori mancanti. Il valore predefinito è 'mean';
  • fill_value: specifica il valore da utilizzare per riempire i valori mancanti quando la strategy è 'constant'. Per impostazione predefinita, è None.

Essendo un trasformatore, dispone dei seguenti metodi:

È inoltre necessario decidere quali valori utilizzare per l'imputazione.

Un approccio comune consiste nel sostituire i valori numerici mancanti con la media e i valori categorici mancanti con la moda (valore più frequente), in quanto ciò altera minimamente la distribuzione dei dati.

La scelta è controllata dal parametro strategy:

  • strategy='mean': imputazione con la media di ciascuna colonna;
  • strategy='median': imputazione con la mediana di ciascuna colonna;
  • strategy='most_frequent': imputazione con la moda di ciascuna colonna;
  • strategy='constant': imputazione con un valore costante specificato nel parametro fill_value.

Il parametro missing_values definisce quali valori sono trattati come mancanti. Per impostazione predefinita, è NaN, ma in alcuni dataset può essere una stringa vuota '' o un altro segnaposto.

Note
Nota

La classe SimpleImputer e molti altri trasformatori funzionano solo con DataFrame, non con pandas Series. Selezionare una singola colonna da un DataFrame utilizzando df['column'] restituisce una Series. Per evitare ciò, è possibile utilizzare le doppie parentesi quadre df[['column']] per assicurarsi che venga restituito un DataFrame:

imputer.fit_transform(df[['column']])

Quando si applica il metodo .fit_transform() di SimpleImputer, viene restituito un array 2D. L'assegnazione di valori a una singola colonna in un DataFrame pandas richiede un array 1D (o una Series).

df['column'] = ...  # Requires 1D array or Series
imputer.fit_transform(df[['column']])  # Produces 2D array

Il metodo .ravel() può essere utilizzato per appiattire l'array in 1D prima dell'assegnazione:

df['column'] = imputer.fit_transform(df[['column']]).ravel()

Questo garantisce che i valori imputati siano correttamente formattati e memorizzati nella colonna del DataFrame.

Compito

Swipe to start coding

Imputare i valori mancanti nella colonna 'sex' utilizzando SimpleImputer. Poiché si tratta di una colonna categorica, sostituire i valori NaN con il valore più frequente.

  1. Importare SimpleImputer.
  2. Creare un oggetto SimpleImputer con la strategy desiderata.
  3. Imputare i valori mancanti della colonna 'sex' utilizzando l'oggetto imputer.

Soluzione

Ottimo! Abbiamo gestito il problema dei valori mancanti nel nostro dataset. Abbiamo rimosso le righe con più di un valore nullo e imputato la colonna 'sex' con il valore più frequente – MALE.

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 4
single

single

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

close

Awesome!

Completion rate improved to 3.13

bookSfida: Imputazione dei Valori Mancanti

Scorri per mostrare il menu

La classe SimpleImputer è progettata per gestire i dati mancanti sostituendo automaticamente i valori mancanti.

from sklearn.impute import SimpleImputer
imputer = SimpleImputer()

Al momento dell'inizializzazione, può essere personalizzata impostando i suoi parametri:

  • missing_value: specifica il segnaposto per i valori mancanti. Per impostazione predefinita, è np.nan;
  • strategy: la strategia utilizzata per imputare i valori mancanti. Il valore predefinito è 'mean';
  • fill_value: specifica il valore da utilizzare per riempire i valori mancanti quando la strategy è 'constant'. Per impostazione predefinita, è None.

Essendo un trasformatore, dispone dei seguenti metodi:

È inoltre necessario decidere quali valori utilizzare per l'imputazione.

Un approccio comune consiste nel sostituire i valori numerici mancanti con la media e i valori categorici mancanti con la moda (valore più frequente), in quanto ciò altera minimamente la distribuzione dei dati.

La scelta è controllata dal parametro strategy:

  • strategy='mean': imputazione con la media di ciascuna colonna;
  • strategy='median': imputazione con la mediana di ciascuna colonna;
  • strategy='most_frequent': imputazione con la moda di ciascuna colonna;
  • strategy='constant': imputazione con un valore costante specificato nel parametro fill_value.

Il parametro missing_values definisce quali valori sono trattati come mancanti. Per impostazione predefinita, è NaN, ma in alcuni dataset può essere una stringa vuota '' o un altro segnaposto.

Note
Nota

La classe SimpleImputer e molti altri trasformatori funzionano solo con DataFrame, non con pandas Series. Selezionare una singola colonna da un DataFrame utilizzando df['column'] restituisce una Series. Per evitare ciò, è possibile utilizzare le doppie parentesi quadre df[['column']] per assicurarsi che venga restituito un DataFrame:

imputer.fit_transform(df[['column']])

Quando si applica il metodo .fit_transform() di SimpleImputer, viene restituito un array 2D. L'assegnazione di valori a una singola colonna in un DataFrame pandas richiede un array 1D (o una Series).

df['column'] = ...  # Requires 1D array or Series
imputer.fit_transform(df[['column']])  # Produces 2D array

Il metodo .ravel() può essere utilizzato per appiattire l'array in 1D prima dell'assegnazione:

df['column'] = imputer.fit_transform(df[['column']]).ravel()

Questo garantisce che i valori imputati siano correttamente formattati e memorizzati nella colonna del DataFrame.

Compito

Swipe to start coding

Imputare i valori mancanti nella colonna 'sex' utilizzando SimpleImputer. Poiché si tratta di una colonna categorica, sostituire i valori NaN con il valore più frequente.

  1. Importare SimpleImputer.
  2. Creare un oggetto SimpleImputer con la strategy desiderata.
  3. Imputare i valori mancanti della colonna 'sex' utilizzando l'oggetto imputer.

Soluzione

Ottimo! Abbiamo gestito il problema dei valori mancanti nel nostro dataset. Abbiamo rimosso le righe con più di un valore nullo e imputato la colonna 'sex' con il valore più frequente – MALE.

Switch to desktopCambia al desktop per esercitarti nel mondo realeContinua da dove ti trovi utilizzando una delle opzioni seguenti
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

close

Awesome!

Completion rate improved to 3.13
Sezione 2. Capitolo 4
single

single

some-alt