Data Preprocessing

Lesson data preprocessing akan memperkenalkan aktivitas yang pertama kali dilakukan dalam membuat model machine learning. Data preprocessing adalah satu topik besar tersendiri yang perlu dibahas dalam course terpisah. Lesson ini hanya akan membahas konsep secara singkat saja.

Untuk modul khusus membahas Data Preprocessing dapat dilihat di https://skillplus.web.id/ml-data-preparation-menggunakan-python/

ML Data Preparation Menggunakan Python

Data preprocessing adalah proses manipulasi dataset sebelum diinput kedalam model. Tujuan dari preprocessing adalah:

Compability, preprocess data agar kompatibel dengan library yang digunakan. Contoh, TensorFlow memerlukan input tensor, bukan file excels.

Orders of magnitude, adanya perbedaan skala antar variable input. Contoh sebuah model untuk prediksi nilai tukar EURO/USD dengan input variable: exchange rate dan volume transaksi.

HariNilai TukarVolume Trading
10,07 (1,3)-0,25 (110.000)
20,96 (1,34)-0,85 (98.700)
3-1,03 (1,25)1,1 (135.000)

Pada tabel diatas, nilai dalam kurung adalah nilai sebelum normalisasi.

Contoh, hari 1, saat diinput kedalam model, nilai tukar 1,3 akan menjadi less significant bagi model karena perbandingan dengan nilai volume trading 110.000.

Masalah ini dapat diselesaikan dengan melakukan standarization atau feature scaling. Setelah dilakukan standarization, nilai tukar dan volume trading memiliki skala yang sama. Dengan demikian model akan memperlakukan seimbang kedua variable input tersebut.

Hal ini pernah dibahas pada lesson K-Mean Clustering dan Standarization.

Masih banyak metoda lainnya seperti PCA dan whitenning. Metoda ini tidak akan dibahas pada course ini.

Generalizations, problem yang terlihat berbeda dapat diselesaikan dengan model yang serupa. Dengan standarization input dari problem yang berbeda, memungkinkan kita menggunakan model yang sama.

Preprocessing Caterogical Data

Kategorikal data adalah data non-numerical, seperti jenis kelamin, status pernikahan, setuju atau tidak setuju.

Contoh: kita memiliki produk fashion dengan kategori kaos, celana dan topi.

Karena model hanya mengenal angka, kita harus mengubah kategori tersebut menjadi angka. Contoh: kaos = 1, celana = 2 dan topi = 3.

Namun hal diatas bermasalah, karena model akan melihat adanya order atau urutan. Atau model juga akan melihat bahwa topi itu sama dengan 3 kaos.

Ada dua pendekatan, yaitu Binary encoding dan One-hot encoding.

Binary Encoding, akan mengubah nilai ordinal menjadi 2 variable dengan binary coding (Pada basis biner, 1 = 01, 2 = 10, 3 = 11)

KategoriOrdinalVar1Var2
Kaos101
Celana210
Topi311

Pendekatan binary encoding masih ada problem. Model dapat melihat korelasi antara kaos dan celana. Model akan melihat Kaos adalah lawan dari celana, seolah apapun bukan kaos, adalah celana. Atau sebaliknya.

One-hot encoding, akan membuat variable sebanyak jumlah kategori. Masih dengan contoh fashion diatas, maka akan dibuat variable misalnya dengan nama kaos, celana dan topi.

KaosCelanaTopi
Kaos100
Celana010
Topi001

Note: Penggunaan variable one-hot encoding pernah disinggung sekilas pada pembahasan objective function, untuk melakukan mendefinisikan anjing, kucing dan kuda.

Dengan menggunakan one-hot encoding, model tidak akan melihat korelasi antar kategori.

Namun one-hot encoding juga ada masalah tersendiri, jika jumlah kategori besar, maka one-hot encoding tidak mungkin digunakan. Contoh Matahari departemen store memiliki ribuan kategori produk

Tentu kita tidak akan menggunakan one-hot encoding dan menginput ribuan kolom kategori kedalam model. Menggunakan binary encoding lebih masuk akal dalam kondisi seperti ini.

Jadi gunakan one-hot encoding untuk jumlah kategori kecil, dan binary encoding untuk jumlah kategori yang besar.

Sharing is caring: