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:
Tweet | Label |
Vaksin covid 19 dapat menyebabkan kebodohan akut | hoax |
Pemerintah negeri sebelah memerintahkan vaksin berbayar | hoax |
Seluruh masyarakat negeri sebelah kena covid | hoax |
Biaya vaksinasi seluruhnya ditanggung oleh negara | fakta |
Jumlah kematian akibat covid hari ini adalah 143 orang | fakta |
Vaksin negeri panda menyebabkan kehamilan | hoax |
Vaksin beruang merah menyebabkan anda berubah jadi berunag | hoax |
Vaksin covid meningkatkan imun tubuh terhadap virus covid | fakta |
Vaksin yang didistribusikan sudah melalui serangkaian uji klinis | fakta |
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