Preprocessing in Sklearn

Preprocessing in Sklearn
La preelaborazione dei dati, una fase cruciale del data mining, può essere definita come alterazione o rilascio di dati prima dell'utilizzo per garantire o aumentare le prestazioni. La preparazione dei dati comporta diverse procedure come l'analisi dei dati esplorativi, la rimozione di informazioni non necessarie e l'aggiunta di informazioni necessarie. Parleremo della preelaborazione dei dati e di come viene utilizzato in Sklearn in questo articolo.

Cos'è l'elaborazione dei dati?

La preelaborazione dei dati è una fase fondamentale dell'apprendimento automatico che migliora la qualità dei dati per incoraggiare l'estrazione di preziose approfondimenti dai dati. La preparazione dei dati nell'apprendimento automatico è il processo per preparare i dati grezzi (pulizia e organizzazione) da utilizzare per creare e formare modelli di apprendimento automatico. La preelaborazione dei dati nell'apprendimento automatico è, per dirla semplicemente, un approccio di data mining che converte i dati grezzi in un formato che è leggibile e intelligibile.

Perché abbiamo bisogno di preelaborazione dei dati?

I dati del mondo reale mancano spesso di particolari valori o tendenze degli attributi ed sono spesso incoerenti, errati (contiene errori o valori anomali) e incompleti. La preparazione dei dati entra in gioco in questa situazione perché aiuta a pulire, formare e organizzare i dati grezzi, rendendolo pronto per l'uso da parte dei modelli di apprendimento automatico.

La preelaborazione dei dati si occupa di quanto segue:

  • Dati mancanti: rimuovere, correggere e imputare
  • Caratteristiche ingegneristiche: estrapola nuove funzionalità dai dati grezzi.
  • Formattazione dei dati: i dati potrebbero non essere disponibili nel formato desiderato. Ad esempio, è un semplice file di testo che dobbiamo convertire in un telaio di dati.
  • Normalizzazione dei dati: non tutti i dati possono essere in forma normalizzata. Pertanto, lo ridimensioniamo alla gamma data per scopi di efficienza
  • Decomposizione: rimozione di dati ridondanti per migliorare le prestazioni

Standard per l'API Scikit-Learn

Esistono diverse specifiche per il tipo di dati che Sklearn elaborerà.

  • Valori costanti (nessuna variabile categorica).
  • Non mancano valori.
  • Ogni colonna dovrebbe contenere una variabile predittore diversa.
  • Ogni riga dovrebbe contenere un'osservazione di funzionalità.
  • Ci devono essere tante etichette per ogni funzione quante ne sono osservazioni.

Implementazione di Sklearn di preelaborazione

Importazione delle librerie e dei dati

# Importazione delle biblioteche e delle classi
Da Sklearn Import SVM, set di dati
Importa panda come PD
da Sklearn.Imputa l'importazione Simpleimputer
da Sklearn.Preprocessing degli standard di importazione
da Sklearn.Preelaborazione di importazione OneHotecoder
# Caricamento del set di dati Iris
Data = set di dati.load_iris ()
df = pd.DataFrame (Data = Data.Dati, colonne = dati.caratteristica_names)

Caricamento delle prime 5 file dei dati

df.Testa()

Produzione

lunghezza del sepal (cm) larghezza del sepal (cm) Lunghezza del petalo (cm) Larghezza del petalo (cm)
0 5.1 3.5 1.4 0.2
1 4.9 3.0 1.4 0.2
2 4.7 3.2 1.3 0.2
3 4.6 3.1 1.5 0.2
4 5.0 3.6 1.4 0.2

Ottenere informazioni su tipi e valori null

df.informazioni()

Produzione

RangeIndex: 150 voci, da 0 a 149
Colonne di dati (totali 4 colonne):
# Colonna non null count dtype
--- ------ -------------- -----
0 lunghezza del sepal (cm) 150 Float non null64
1 sepal larghezza (cm) 150 non null float64
2 Lunghezza petalo (cm) 150 Float non null64
3 Larghezza petalo (cm) 150 Float non null64
dtypes: float64 (4)

Riempire i valori mancanti del frame dati utilizzando Sklearn:

Imputer = SimpleIMputer (Strategy = 'Mean')
df ['larghezza del sepal (cm)'] = imputatore.fit_transform (df [['sepal width (cm)'])

Possiamo iterare tutte le colonne per eseguire questa attività su tutte le colonne.

Ridimensionamento dei dati utilizzando Scaler standard

scaler = standardsCaler ()
Scaler.Fit (DF)
# trasformare i dati
Scaler.Transform (df) [: 10]

Produzione

array ([[-0.90068117, 1.01900435, -1.34022653, -1.3154443],
[-1.14301691, -0.13197948, -1.34022653, -1.3154443],
[-1.38535265, 0.32841405, -1.39706395, -1.3154443],
[-1.50652052, 0.09821729, -1.2833891, -1.3154443],
[-1.02184904, 1.24920112, -1.34022653, -1.3154443],
[-0.53717756, 1.93979142, -1.16971425, -1.05217993],
[-1.50652052, 0.78880759, -1.34022653, -1.18381211],
[-1.02184904, 0.78880759, -1.2833891, -1.3154443],
[-1.74885626, -0.36217625, -1.34022653, -1.3154443],
[-1.14301691, 0.09821729, -1.2833891, -1.44707648]])

Una codifica calda

encoder = OneHoteNCODER (Handle_unknown = 'Ignore')
X = [['a', 1], ['b', 3], ['b', 2]
codificatore.Fit (x)
Stampa (encoder.categorie_)
codificatore.trasformazione (x).Toarray ()

Produzione

[array (['a', 'b'], dtype = object), array ([1, 2, 3], dType = object)]
array ([[1., 0., 1., 0., 0.",
[0., 1., 0., 0., 1.",
[0., 1., 0., 1., 0.]])

Conclusione

Abbiamo discusso di preelaborazione e la sua implementazione nella biblioteca di Sklearn Python in questo articolo. Al fine di facilitare l'estrazione di utili approfondimenti dai dati, la preelaborazione dei dati è un passo cruciale nell'apprendimento automatico. Aumenta la qualità dei dati. Quindi, abbiamo discusso dell'implementazione in Sklearn. Abbiamo prima recuperato informazioni sui dati, inclusi i valori e i dati mancanti, quindi compilati i valori mancanti. Abbiamo anche lavorato per ridimensionare i dati e una codifica hot.