Normalizzazione dei dati in Python

Normalizzazione dei dati in Python

La normalizzazione dei dati è una tecnica che aiuta a ottenere il risultato più velocemente poiché la macchina deve elaborare una gamma di dati più piccola. La normalizzazione non è un compito facile perché tutti i risultati dipendono dalla scelta del metodo normalizza. Quindi, se hai scelto il metodo sbagliato per normalizzare i tuoi dati, potresti ottenere qualcosa di diverso dalle tue aspettative.

La normalizzazione dipende anche dal tipo di dati come immagini, testo, numerico, ecc. Quindi, ogni tipo di dati ha un metodo diverso per normalizzare. Quindi, in questo articolo, ci stiamo concentrando sui dati numerici.

Metodo 1: usando Sklearn

Il metodo Sklearn è un metodo molto famoso per normalizzare i dati.

dalla preelaborazione dell'importazione di Sklearn
Importa Numpy come NP
numpy_array = np.Array ([2, 3, 5, 6, 7, 4, 8, 7, 6, 17, 18, 19, 2, 1, 89])
normalized_array = preprocessing.normalizza ([numpy_array])
Stampa (normalized_array)

Risultato:

Importiamo tutte le librerie richieste, Numpy e Sklearn. Puoi vedere che importa il preelaborazione dallo stesso Sklearn. Ecco perché questo è il metodo di normalizzazione Sklearn.

Abbiamo creato un array numpy con un valore intero che non è lo stesso.

Abbiamo chiamato il metodo normalizza dalla preelaborazione e abbiamo superato Numpy_array, che abbiamo appena creato come parametro.

Possiamo vedere dai risultati, i nostri dati interi sono ora normalizzati tra 0 e 1.

Metodo 2: normalizzare una colonna particolare in un set di dati utilizzando Sklearn

Possiamo anche normalizzare la colonna di set di dati particolare. In questo, ne discuteremo.

Importa panda come PD
dalla preelaborazione dell'importazione di Sklearn
Importa Numpy come NP
csvfile = pd.read_csv ("Demo.CSV ")
Stampa (CSVFILE)
valori_array = np.array (csvfile ['value'])
Stampa (value_array)
normalized_array = preprocessing.normalizza ([value_array])
Stampa (normalized_array)

Risultato:

Importiamo i panda della biblioteca e Sklearn.

Abbiamo creato un file CSV fittizio e ora stiamo caricando quel file CSV con l'aiuto del pacchetto Pandas (read_csv).

Stampiamo quel file CSV che abbiamo recentemente caricato.

Leggiamo la colonna particolare del file CSV usando NP. Array e memorizzare il risultato su valori_array.

Abbiamo chiamato il metodo normalizza dalla preelaborazione e abbiamo superato il parametro value_array.

Metodo 3: convertiti in normalizzarsi senza usare le colonne in array (usando Sklearn)

Nel metodo precedente 2, abbiamo discusso di come a una particolare colonna di file CSV potremmo normalizzare. Ma a volte dobbiamo normalizzare l'intero set di dati, quindi possiamo usare il metodo seguente in cui normalizziamo l'intero set di dati ma lungo la colonna (axis = 0). Se menzioniamo l'asse = 1, allora sarà normalmente normalizzato. L'asse = 1 è per valore predefinito.

Importa panda come PD
dalla preelaborazione dell'importazione di Sklearn
csvfile = pd.read_csv ("demo_numeric.CSV ")
Stampa (CSVFILE)
# Normalizza i dati lungo colonne (axis = 0)
risultato = preelaborazione.Normalizza (csvfile, axis = 0)
Stampa (risultato)

Risultato:

Importiamo i panda della biblioteca e Sklearn.

Abbiamo creato un file CSV fittizio (demo_numeric.CSV) e ora stiamo caricando quel file CSV con l'aiuto del pacchetto Panda (read_csv).

Stampiamo quel file CSV che abbiamo recentemente caricato.

Ora, passiamo l'intero file CSV insieme a un altro Asse di parametri extra = 0, che diceva alla libreria che l'utente voleva normalizzare l'intero set di set di set di set di set di set di set di set di set di set di set di set di set di set di set di set di dati.

Stampiamo il risultato e normalizziamo i dati con un valore compreso tra 0 e 1.

Metodo 4: usando MinMaxScaler ()

Lo Sklearn fornisce anche un altro metodo di normalizzazione, che l'abbiamo chiamato MinMaxScalar. Questo è anche un metodo molto popolare perché è facile da usare.

Importa panda come PD
dalla preelaborazione dell'importazione di Sklearn
csvfile = pd.read_csv ("demo_numeric.CSV ")
Stampa (CSVFILE)
min_max_scalar = preprocessing.MinMaxScaler ()
col = csvfile.colonne
risultato = min_max_scalar.FIT_TRANSFORM (CSVFILE)
min_max_scalar_df = pd.DataFrame (risultato, colonne = col)
Print (min_max_scalar_df)

Risultato:

Importiamo tutti i pacchetti richiesti.

Abbiamo creato un file CSV fittizio (demo_numeric.CSV) e ora stiamo caricando quel file CSV con l'aiuto del pacchetto Panda (read_csv).

Stampiamo quel file CSV che abbiamo recentemente caricato.

Abbiamo chiamato MinMaxScalar dal metodo di preelaborazione e creato un oggetto (min_max_scalar) per questo. Non abbiamo superato alcun parametro perché dobbiamo normalizzare i dati tra 0 e 1. Ma se vuoi, puoi aggiungere i tuoi valori che verranno visualizzati nel metodo successivo.

Abbiamo letto per la prima volta tutti i nomi delle colonne per essere ulteriormente utilizzato per visualizzare i risultati. Quindi chiamiamo FIT_TRANFORM dall'oggetto creato min_max_scalar e abbiamo passato il file CSV in quello.

Otteniamo i risultati normalizzati che sono compresi tra 0 e 1.

Metodo 5: usando MinMaxScaler (Feature_Range = (x, y))

Sklearn offre anche l'opzione per modificare il valore normalizzato di ciò che desideri. Per impostazione predefinita, normalizzano il valore tra 0 e 1. Ma esiste un parametro che abbiamo chiamato Feature_Range, che può impostare il valore normalizzato in base ai nostri requisiti.

Importa panda come PD
dalla preelaborazione dell'importazione di Sklearn
csvfile = pd.read_csv ("demo_numeric.CSV ")
Stampa (CSVFILE)
min_max_scalar = preprocessing.MinMaxScaler (Feature_Range = (0, 2))
col = csvfile.colonne
risultato = min_max_scalar.FIT_TRANSFORM (CSVFILE)
min_max_scalar_df = pd.DataFrame (risultato, colonne = col)
Print (min_max_scalar_df)

Risultato:

Importiamo tutti i pacchetti richiesti.

Abbiamo creato un file CSV fittizio (demo_numeric.CSV) e ora stiamo caricando quel file CSV con l'aiuto del pacchetto Panda (read_csv).

Stampiamo quel file CSV che abbiamo recentemente caricato.

Abbiamo chiamato MinMaxScalar dal metodo di preelaborazione e creato un oggetto (min_max_scalar) per questo. Ma passiamo anche un altro parametro all'interno di MinMaxScaler (Feature_Range). Quel valore del parametro abbiamo impostato da 0 a 2. Quindi ora, MinMaxScaler normalizzerà i valori dei dati tra 0 e 2.

Abbiamo letto per la prima volta tutti i nomi delle colonne per essere ulteriormente utilizzato per visualizzare i risultati. Quindi chiamiamo FIT_TRANFORM dall'oggetto creato min_max_scalar e abbiamo passato il file CSV in quello.

Otteniamo i risultati normalizzati che sono compresi tra 0 e 2.

Metodo 6: usando il massimo ridimensionamento assoluto

Possiamo anche normalizzare i dati usando i panda. Queste caratteristiche sono anche molto popolari nel normalizzare i dati. Il ridimensionamento assoluto massimo normalizza i valori tra 0 e 1. Stiamo facendo domanda qui .max () e .ABS () come mostrato di seguito:

Importa panda come PD
# Crea un frame dati demo
df = pd.DataFrame ([
[380000, 610, 187.9],
[860000, 705, 237.4],
[430000, 130, 147.0],
[60000, 150, 137.5]],
colonne = ['a', 'b', 'c'])
Stampa (DF)
# Metodo normalizzato
per la colonna in df.colonne:
df [colonna] = df [colonna] / df [colonna].addominali().max ()
Stampa (DF)

Risultato:

Importiamo la biblioteca dei Pandas.

Abbiamo creato un frame dati fittizio e stampato quel frame dati.

Chiamiamo ogni colonna e quindi dividiamo i valori della colonna con il .max () e .addominali().

Stampiamo il risultato e, dal risultato, confermiamo che i nostri dati si normalizzano tra 0 e 1.

Metodo 7: usando il metodo z-punteggio

Il prossimo metodo di cui discuteremo è il metodo Z-Score. Questo metodo converte le informazioni alla distribuzione. Questo metodo calcola la media di ciascuna colonna e quindi sottrae da ciascuna colonna e, infine, la divide con la deviazione standard. Questo normalizza i dati tra -1 e 1.

Importa panda come PD
# Crea un frame dati demo
df = pd.DataFrame ([
[380000, 610, 187.9],
[860000, 705, 237.4],
[430000, 130, 147.0],
[60000, 150, 137.5]],
colonne = ['a', 'b', 'c'])
Stampa (DF)
# Metodo normalizzato
per la colonna in df.colonne:
df [colonna] = (df [colonna] - df [colonna].media ()) / df [colonna].std ()
Stampa (DF)

Risultato:

Abbiamo creato un frame dati fittizio e stampato quel frame dati.

Calcoliamo la media della colonna e la sottraggiamo dalla colonna. Quindi dividiamo il valore della colonna con la deviazione standard.

Stampiamo i dati normalizzati tra -1 e 1.

Conclusione: abbiamo visto diversi tipi di metodi normalizzati. Tra questi, Sklearn è molto famoso a causa del supporto dell'apprendimento automatico. Ma questo dipende dai requisiti dell'utente. A volte la funzionalità dei panda per normalizzare i dati è sufficiente. Non possiamo dire che ci siano solo metodi normalizzati. Esistono numerosi metodi per eseguire la normalizzazione dei dati che dipendono anche dal tipo di dati come immagini, numerico, testo, ecc. Ci concentriamo su questi dati numerici e Python.