Cara menormalkan data dengan python
Seringkali dalam statistik dan pembelajaran mesin kita menormalkan variabel sedemikian rupa sehingga rentang nilainya antara 0 dan 1.
Alasan paling umum untuk melakukan normalisasi variabel adalah ketika kita melakukan beberapa jenis analisis multivariat (yaitu kita ingin memahami hubungan antara beberapa variabel prediktor dan variabel respons) dan kita ingin setiap variabel memberikan kontribusi yang sama terhadap analisis.
Ketika variabel diukur pada skala yang berbeda, seringkali variabel tersebut tidak memberikan kontribusi yang sama terhadap analisis. Misalnya, jika nilai suatu variabel berkisar antara 0 hingga 100.000 dan nilai variabel lain berkisar antara 0 hingga 100, maka variabel dengan rentang yang lebih besar akan diberi bobot yang lebih besar dalam analisis.
Dengan melakukan standarisasi variabel, kita dapat yakin bahwa setiap variabel memberikan kontribusi yang sama terhadap analisis.
Untuk menormalkan nilai antara 0 dan 1, kita dapat menggunakan rumus berikut:
x norma = ( xi – x menit ) / (x maks – x menit )
Emas:
- x norm : nilai normalisasi ke-i dalam kumpulan data
- x i : nilai ke-i dari kumpulan data
- x max : Nilai minimum dalam kumpulan data
- x min : Nilai maksimum dalam kumpulan data
Contoh berikut menunjukkan cara menormalkan satu atau lebih variabel dengan Python.
Contoh 1: menormalkan array NumPy
Kode berikut menunjukkan cara menormalkan semua nilai dalam array NumPy:
import numpy as np #create NumPy array data = np. array ([[13, 16, 19, 22, 23, 38, 47, 56, 58, 63, 65, 70, 71]]) #normalize all values in array data_norm = (data - data. min ())/ (data. max () - data. min ()) #view normalized values data_norm array([[0. , 0.05172414, 0.10344828, 0.15517241, 0.17241379, 0.43103448, 0.5862069, 0.74137931, 0.77586207, 0.86206897, 0.89655172, 0.98275862, 1. ]])
Setiap nilai dalam array yang dinormalisasi sekarang berada di antara 0 dan 1.
Contoh 2: Normalisasikan semua variabel di Pandas DataFrame
Kode berikut menunjukkan cara menormalkan semua variabel di pandas DataFrame:
import pandas as pd #createDataFrame df = pd. DataFrame ({' points ': [25, 12, 15, 14, 19, 23, 25, 29], ' assists ': [5, 7, 7, 9, 12, 9, 9, 4], ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]}) #normalize values in every column df_norm = (df-df. min ())/ (df. max () - df. min ()) #view normalized DataFrame df_norm points assists rebounds 0 0.764706 0.125 0.857143 1 0.000000 0.375 0.428571 2 0.176471 0.375 0.714286 3 0.117647 0.625 0.142857 4 0.411765 1.000 0.142857 5 0.647059 0.625 0.000000 6 0.764706 0.625 0.571429 7 1.000000 0.000 1.000000
Masing-masing nilai di setiap kolom kini berada di antara 0 dan 1.
Contoh 3: Normalisasikan variabel tertentu di Pandas DataFrame
Kode berikut menunjukkan cara menormalkan variabel tertentu di pandas DataFrame:
import pandas as pd #createDataFrame df = pd. DataFrame ({' points ': [25, 12, 15, 14, 19, 23, 25, 29], ' assists ': [5, 7, 7, 9, 12, 9, 9, 4], ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]}) define columns to normalize x = df. iloc [:,0:2] #normalize values in first two columns only df. iloc [:,0:2] = (xx. min ())/ (x. max () - x. min ()) #view normalized DataFrame df points assists rebounds 0 0.764706 0.125 11 1 0.000000 0.375 8 2 0.176471 0.375 10 3 0.117647 0.625 6 4 0.411765 1.000 6 5 0.647059 0.625 5 6 0.764706 0.625 9 7 1.000000 0.000 12
Perhatikan bahwa hanya nilai di dua kolom pertama yang dinormalisasi.
Sumber daya tambahan
Tutorial berikut memberikan informasi tambahan tentang normalisasi data:
Cara menormalkan data antara 0 dan 1
Cara menormalkan data antara 0 dan 100
Standardisasi atau normalisasi: apa bedanya?