Cara menggunakan SCALEING pada Python

Normalisasi data merupakan salah satu teknik yang penting untuk dipahami dalam praproses data. Dalam analisis dan eksplorasi data sering kali kita menemukan banyak features atau variabel di dalam dataset yang akan kita analisis. Bukan hal yang jarang terjadi jika rentang nilai antara variabel tersebut sangat jauh, misalnya umur yang normalnya hanya berkisar di bawah 100 dan gaji yang kebanyakan bernilai puluhan ribu, ratusan ribu atau jutaan rupiah.

Lalu apa hubungannya dengan normalisasi data?

Sekarang mari kita bahas.

Apa itu normalisasi data?

Normalisasi data adalah proses membuat beberapa variabel memiliki rentang nilai yang sama, tidak ada yang terlalu besar maupun terlalu kecil sehingga dapat membuat analisis statistik menjadi lebih mudah. Perhatikan dua tabel berikut.

Cara menggunakan SCALEING pada Python

Pada tabel di atas, kita lihat bahwa perbedaan rentang nilai dari variabel terlihat sangat jauh. Variabel umur memiliki kisaran nilai dari 0 sampai 100, sementara variabel gaji berkisar dari 0 sampai 500.000. Ini berarti variabel gaji bernilai sekitar 1000 kali lipat lebih besar dibandingkan variabel umur.

Baca juga: 3 Contoh Penerapan Data Formatting dengan Pandas

Ketika kita melakukan analisis lebih jauh seperti misalnya pemodelan menggunakan linear regression, variabel gaji akan lebih mempengaruhi hasil dikarenakan nilainya yang lebih besar. Model regresi linear akan menimbang gaji dengan lebih berat dari pada umur.

Untuk menghindari kondisi semacam ini, kita bisa menormalisasi dua variabel tersebut menjadi nilai yang memiliki rentang yang sama yaitu dari 0 sampai 1 seperti pada tabel di sebelahnya.

Metode normalisasi data

Ada beberapa metode yang dapat dilakukan untuk normalisasi data.

Simple Feature Scaling

Metode normalisasi data pertama yaitu simple feature scaling. Formula yang digunakan sangat sederhana yaitu membagi setiap nilai dengan nilai maksimum pada fitur tersebut.

Cara menggunakan SCALEING pada Python

Cara ini akan menghasilkan nilai baru hasil normalisasi yang berkisar antara 0 dan 1. Contoh pada tabel dengan normalisasi sebelumnya menggunakan metode ini, dimana diasumsikan bahwa nilai maksimum pada dataset tersebut adalah 100 untuk variabel Umur dan 500000 untuk variabel Gaji.

Di Pandas Python, kita dapat menerapkannya dengan kode berikut.

df["Umur"] = df["Umur"] / df["Umur"].max()
df["Gaji"] = df["Gaji"] / df["Gaji"].max()

Method max() digunakan untuk mengambil nilai maksimum dari fitur atau kolom tersebut.

Baca juga: Cara Import dan Export Data di Python

Min-Max

Metode normalisasi data selanjutnya adalah Min-Max. Cara kerjanya setiap nilai pada sebuah fitur dikurangi dengan nilai minimum fitur tersebut, kemudian dibagi dengan rentang nilai atau nilai maksimum dikurangi nilai minimum dari fitur tersebut.

Cara menggunakan SCALEING pada Python

Cara ini juga akan menghasilkan nilai baru hasil normalisasi antara 0 sampai 1.

Berikut kode Python untuk mengaplikasikan metode Min-Max.

df["Umur"] = (df["Umur"] - df["Umur"].min()) / (df["Umur"].max() – df["Umur"].min())
df["Gaji"] = (df["Gaji"] - df["Gaji"].min()) / (df["Gaji"].max() – df["Gaji"].min())

Sama seperti method max(), method min() digunakan untuk mengambil nilai minimum dari fitur tersebut.

Cara menggunakan SCALEING pada Python

Baca juga: Cara Binning Data di Python dengan Pandas

Z-score

Metode ketiga adalah Z-score atau disebut juga standard score. Dengan formula ini, masing-masing nilai pada fitur dikurangi dengan miu (µ) yang merupakan nilai rata-rata fitur, kemudian dibagi dengan sigma (σ) yang merupakan standar deviasi.

Cara menggunakan SCALEING pada Python

Cara ini akan menghasilkan nilai baru hasil normalisasi yang berkisar di angka 0 dan biasanya ada pada rentang antara -3 dan 3 tetapi bisa juga lebih tinggi atau lebih rendah.

Berikut contoh penerapannya di Python.

df["Umur"] = (df["Umur"] - df["Umur"].mean()) / df["Umur"].std()
df["Gaji"] = (df["Gaji"] - df["Gaji"].mean()) / df["Gaji"].std()

Method mean() akan menghasilkan nilai rata-rata dari sebuah fitur di dataset, sedangkan std() akan menghasilkan nilai standard deviasi dari sebuah fitur.

Semoga bermanfaat!

Standard scaler untuk apa?

StandardScaler adalah class dari sklearn untuk melakukan normalisasi data agar data yang digunakan tidak memiliki penyimpangan yang besar. Satu hal penting dalam Data Analysis adalah membuat DataFrame dari dataset. Lalu menampilkan 5 data teratas untuk memastikan data seperti apa yang akan di analisis.

MinMaxScaler untuk apa?

Orang-orang juga biasa menggunakan MinMaxScaler yang berfungsi untuk mengubah data berada di rentang 0 sampai 1. Agar lebih mudah mengilustrasikan kesalahan ini, saya akan menggunakan MinMaxScaler.

Apa itu Normalisasi dataset?

Data scaling atau normalisasi data merupakan teknik mengubah nilai numerik dalam dataset ke skala umum, tanpa mendistorsi perbedaan dalam rentang nilai. Normalisasi data akan membantu mempercepat proses pembelajaran pada machine learning [13].

Apa itu Metode normalisasi?

Normalisasi data adalah proses membuat beberapa variabel memiliki rentang nilai yang sama, tidak ada yang terlalu besar maupun terlalu kecil sehingga dapat membuat analisis statistik menjadi lebih mudah.