Selamat Datang Di Kelas AI (Beta)

Memahami Label Encoding Pada Python

Tim Kelas AI - 22 Jan 2025 (2 Minute Read)

Tim Kelas AI, 22 Jan 2025
2 Minute Read

Misal kalian punya sebuah data 'warna' berupa text-kategorikal pada dataset kalian, katakanlah: merah, biru dan hijau. Kita sama-sama tau bahwa mesin tidak dapat mengolah data text secara langsung bukan? Maka diperlukan sebuah teknik untuk mengubah data 'warna' tersebut menjadi numerik, misalnya merah = 1, biru = 2, dan hijau = 3. Proses ini disebut sebagai encoding.

Apa Itu Label Encoding

Label encoding adalah teknik lain untuk mengonversi data kategori menjadi numerik. Berbeda dengan one-hot encoding, label encoding menggantikan setiap kategori dengan nilai integer yang unik. Misalnya, jika kita memiliki kategori "Merah", "Biru", dan "Hijau", hasil label encoding-nya adalah:

WarnaLabel
Merah0
Biru1
Hijau2

Kapan Menggunakan Label Encoding?

Label encoding cocok digunakan jika data kategori memiliki urutan logis atau hubungan ordinal. Namun, jika tidak ada hubungan ordinal, label encoding dapat menyebabkan algoritma machine learning menganggap hubungan numerik yang tidak sesuai, sehingga dalam kasus tersebut, one-hot encoding lebih disarankan.

Baca Juga: Memahami One-Hot Encoding disini

Implementasi Label Encoding di Python

Untuk melakukan Label Encoding menggunakan sklearn, kita bisa gunakan cara berikut:

from sklearn.preprocessing import LabelEncoder

# Data contoh
data = ['Merah', 'Hijau', 'Biru', 'Merah']

# Inisialisasi encoder
encoder = LabelEncoder()
data_encoded = encoder.fit_transform(data)

print(data_encoded)
Output:
[0 1 2 0]

Untuk mendapatkan mapping kategori:

print(dict(zip(encoder.classes_, range(len(encoder.classes_)))))
Output:
{'Biru': 0, 'Hijau': 1, 'Merah': 2}

Untuk melakukan Label Encoding menggunakan Pandas, kita bisa gunakan cara berikut:

import pandas as pd

# Data contoh
data = {'Warna': ['Merah', 'Hijau', 'Biru', 'Merah']}
df = pd.DataFrame(data)

# Label encoding dengan pandas
df['Warna_Encoded'] = df['Warna'].astype('category').cat.codes
print(df)
Output:
Warna Warna_Encoded 0 Merah 2 1 Hijau 1 2 Biru 0 3 Merah 2

Kekurangan Label Encoding

  1. Asumsi Hubungan Ordinal:
    Label encoding dapat menyebabkan model menganggap bahwa kategori memiliki hubungan ordinal, yang tidak sesuai untuk data non-ordinal.
  2. Risiko Bias Model
    Algoritma yang sensitif terhadap skala numerik dapat memberikan bobot yang berbeda pada kategori tertentu.

Baca Artikel Lainnya +