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?

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *