Jelajahi E-Learning

Detail
HR Blog

Label Encoder Pada Python

Made with by Halo Ryan

Label Encoder Pada Python

Tim Halo Ryan, 14 Dec 2021

Ketika kita bekerja dengan data kategorikal ada kalanya kita membuat sebuah kategorisasi yang bersifat string.  Misalnya 'Hoax' dan 'Fakta' seperti pada dataset dibawah ini:

TweetLabel
Vaksin covid 19 dapat menyebabkan kebodohan akuthoax
Pemerintah negeri sebelah memerintahkan vaksin berbayarhoax
Seluruh masyarakat negeri sebelah kena covidhoax
Biaya vaksinasi seluruhnya ditanggung oleh negarafakta
Jumlah kematian akibat covid hari ini adalah 143 orangfakta
Vaksin negeri panda menyebabkan kehamilanhoax
Vaksin beruang merah menyebabkan anda berubah jadi berunaghoax
Vaksin covid meningkatkan imun tubuh terhadap virus covidfakta
Vaksin yang didistribusikan sudah melalui serangkaian uji klinisfakta


Dalam beberapa kasus, mesin akan kesulitan dalam menafsirkan apakah data tersebut merupakan sebuah string atau kategorikal. Maka, ada baiknya kita merubah label tersebut menjadi integer atau numeric terlebih dahulu. Label encoder merupakan sebuah library python dari 'SciKit Learn' yang berfungsi mengkonfersi data-data kategorikal dan string yang bersifat kategorikal menjadi numeric yang dapat dengan mudah dipahami model.

So, dalam membuat sebuah model machine learning, proses ini masuk kedalam bagian pre-processing. Yaitu proses menyiapkan data sebelum dapat diproses dalam sebuah model dan dimengerti dengan baik. Untuk menggunakan library ini, kita perlu mengimportnya kedalam proyek kita terlebih dahulu.

Katakanlah kita sudah memiliki sebuah dataframe berupa data sentimen twitter yang dikategorikan menjadi fakta atau hoax. Kalian bisa download datasetnya disini. Kemudian buka dataset tersebut pada google colab menggunakan pandas.

Baca juga: membuka data excel dengan pandas disini

PR kita disini adalah mengubah data-data di kolom 'label' yang bersifat string menjadi integer. Untuk itu silahkan import library LabelEncoder dari SciKit seperti berikut.


from sklearn.preprocessing import LabelEncoder
df['label_enc'] = LabelEncoder().fit_transform(df['label'])
df.head()

Sehingga hasilnya adalah seperti ini:

Dari sini kita bisa melihat bahwa terdapat satu kolom tambahan yaitu kolom 'label_enc' yang merupakan hasil encoding dari kolom 'label' dimana label 'fakta' diencoding menjadi 0 dan label 'hoax' diencoding menjadi 1 . Nah kolom inilah yang akan kita gunakan dalam pemrosesan model.

So bagaimana jika kita memiliki lebih dari 2 label, sehingga data yang dihasilkan bisa berupa integer dari 0 hingga jauh tak berhingga. Ini akan menimbulkan masalah baru dimana mesin dapat mengira bahwa data ini merupakan data kontinu atau data numeric non kategorikal yang memiliki hubungan dengan kolom latau parameter lainnya?

Untuk memecahkan masalah ini, kita dapat menggunakan library OneHotEncoding dari SciKit Learn yang akan kita bahas pada artikel berikutnya.

Termakasih sudah membaca artikel ini, jika ada yang ingin ditanyakan, jangan ragu untuk meninggalkan pesan di kolom komentar. Kamu dapat menikmati konten kamu yang lain disini