python pandas categorical data
Python

Python Pandas : Memahami Categorical Data

Categorical data adalah kumpulan informasi yang berbentuk kelompok/group

Misalnya kita punya data yang mempunyai atribut nama,alamat,jenis kelamin,uts,uas

nama,alamat,jenis kelamin,uts,uas
Faqih,Bandung,Laki-Laki,100,70
Ina,Jakarta,Perempuan,88,90
Fitri,Bandung,Perempuan,99,80
Dana,Surabaya,Perempuan,80,70
Abi,Surabaya,Laki-Laki,90,50
Dika,Jakarta,Laki-Laki,70,100

Dari data diatas yang dimaksud categorical data adalah kolom alamat dan jenis kelamin yang berupa kumpulan item yang mempunyai beberapa value yang sama

Kolom alamat mempunyai value Bandung, Jakarta dan Surabaya sedangkan kolom jenis kelamin mempunyai value Laki-laki dan Perempuan

Dalam machine learning, data berbentuk seperti ini tidak dapat diproses. Categorical data harus dirubah dulu menjadi bentuk numerik

Ada beberapa cara melakukan encoding categorical data dengan melakukan label encoding dan one hot encoding

Label Encoding

Label encoding mengubah setiap nilai dalam kolom menjadi angka yang berurutan

Misalnya pada kolom alamat nilai Bandung = 0, Jakarta = 1, Surabaya = 2. Sedangkan kolom jenis kelamin nilai Laki-Laki = 0 dan Perempuan = 1

Sehingga data akan menjadi seperti ini

Dalam Python kita bisa gunakan Python Pandas untuk melakukan label encoding menggunakan library sci-kit LabelEncoder dan lakukan proses fit_transform() dengan kolom yang ingin dirubah

from sklearn.preprocessing import LabelEncoder

labelencoder = LabelEncoder()
df['alamat'] = labelencoder.fit_transform(df['alamat'])
df['jenis kelamin'] = labelencoder.fit_transform(df['jenis kelamin'])

Hasilnya adalah

Dalam implementasinya kita dapat menggunakan keduanya, tetapi untuk categorical data yang mempunyai lebih dari 2 dapat disalahartikan oleh algoritma sebagai memiliki semacam hierarki atau urutan

One-Hot Encoding

Seperti dijelaskan diatas bahwa teknik label encoding bisa disalahartikan bahwa categorical data mempunyai urutan padahal bobot setiap value adalah sama

Ada teknik lainnya yang disebut dengan One-Hot Encoding

One-Hot Encoding adalah teknik yang merubah setiap nilai di dalam kolom menjadi kolom baru dan mengisinya dengan nilai biner yaitu 0 dan 1

Misalnya pada kolom alamat dan jenis kelamin setelah dilakukan one-hot encoding akan menjadi

Dalam Python Pandas, kita bisa gunakan dummies values di Pandas dengan menggunakan fungsi get_dummies() seperti ini

df = pd.get_dummies(df, columns=["alamat"])
df = pd.get_dummies(df, columns=["jenis kelamin"])

Hasilnya adalah seperti ini

Teknik encoding seperti ini sangat penting untuk categorical data sebelum data diproses dalam machine learning.

Hal ini dikarenakan machine learning tidak bisa menerima bentuk inputan string dan hanya bisa dalam bentuk data numerik

Leave a Reply

Your email address will not be published.