Apa Pentingnya Scaling Data di Machine Learning?
Bagi penggiat machine learning, mungkin sudah mengetahui proses-proses yang terjadi dari awal hingga akhir dalam pengerjaan machine learning. Mulai dari mencari data, preprocessing, feature engineering, pembuatan model, hingga ke tingkat produksi. Kali ini, saya akan membahas pentingnya scaling dalam pembuatan model machine learning.
Scaling termasuk dalam bagian preprocessing. Umumnya, orang menggunakan scikit-learn dalam pembuatan model machine learning. Di scikit-learn ada beberapa scaler yang umum dijumpai yaitu StandardScaler yang bertujuan untuk membuat rata-rata 0 dan variansi 1. Ada juga RobustScaler yang menggunakan median dan quartiles. Tujuannya agar tahan terhadap pencilan data (outliers). MinMaxScaler juga biasa digunakan. Scaler tersebut membuat data berada pada rentang 0 -1. Selain itu,ada juga yang bisasa menggunakan Normalizer. Normalizer berfungsi untuk mengubah data sehingga panjang vektor dari fitur sebesar 1 Euclidean.
Berikut contoh tanpa melakukan normalisasi data.
Saya menggunakan cancer datasets dari scikit-learn serta menggunakan SVC sebagai model saya. Saya juga membagi data menjadi 80% untuk training dan 20% untuk testing. Tanpa melakukan normalisasi data, saya memperoleh akurasi sebesar 62.3%. Akurasi tersebut cukup rendah dan tidak dapat digunakan dalam dunia nyata.
Berikut contoh dengan melakukan normalisasi data.
Wow! akurasi model meningkat jauh yang awalnya sebesar 62.3% menjadi 98.25%. Hanya dengan menormalisasi data menggunakan MinMaxScaler.
Pertanyaan selanjutnya, kenapa bisa? Hal ini dikarenakan data memiliki 30 variabel/fitur/kolom. Masing-masing fitur tersebut memiliki rentang nilainya masing-masing. Silahkan dilihat sendiri data lengkapnya di sini. Dengan melakukan normalisasi data, model dapat belajar dengan lebih cepat dan meningkatkan akurasi model.