Machine learning (ML) adalah cabang dari Artificial Intelligence (AI), merupakan kemampuan ketika komputer dapat belajar dari data tanpa perlu diprogram secara eksplisit, dimana ML memungkinkan komputer untuk mengenali pola dalam data, membuat prediksi, dan mengambil keputusan berdasarkan informasi yang dipelajari dari pengalaman atau data latihan, yang dipopulerkan oleh Arthur Samuel pada tahun 1959
Adapun Komponen utama ML yang sangat penting dalam proses pembangunan model yang efektif, antara lain :
- Data, merupakan bahan dasar dalam machine learning, karena tanpa data, model tidak bisa dilatih atau dipelajari, yang terdiri dari fitur (atribut atau variabel input) dan label (hasil yang ingin diprediksi). Kualitas dan kuantitas data mempengaruhi kinerja model, dimana data harus bersih, relevan, dan cukup representatif untuk masalah yang dihadapi
- Algoritma, merupakan prosedur atau metode yang digunakan untuk melatih model dengan data, yang menentukan cara model belajar dari data dan mengoptimalkan proses pembelajaran, dimana setiap algoritma memiliki cara kerja dan teknik optimasi yang berbeda
- Model, merupakan kumpulan perhitungan matematis atau aturan yang dihasilkan dari proses mempelajari pola dari data, yang berupa berbagai jenis algoritma, seperti regresi linier, decision tree, atau jaringan syaraf tiruan (neural networks), dimana model dilatih menggunakan data untuk membuat prediksi atau klasifikasi
- Feature engineering, merupakan proses mengubah data mentah menjadi fitur yang lebih relevan dan informatif untuk model, yang melibatkan pemilihan, transformasi, dan pembuatan fitur baru dari data yang ada, dimana fitur engineering penting untuk meningkatkan kinerja model
- Training, merupakan proses model belajar dari data, diman selama pelatihan, model memproses data dan memperbarui parameter untuk meminimalkan kesalahan atau meningkatkan akurasi, yang melibatkan penggunaan data latih dan sering kali melibatkan pembagian data menjadi set pelatihan dan set validasi
- Evaluation, merupakan proses menilai kinerja model menggunakan data yang tidak digunakan selama pelatihan (data uji), yang melibatkan metrik evaluasi, seperti akurasi, precision, recall, dan F1-score untuk menentukan seberapa baik model dalam membuat prediksi atau klasifikasi
- Hyperparameter tuning, merupakan proses mengoptimalkan parameter-parameter di luar model yang dapat memengaruhi kinerja model, dimana hyperparameter tidak dipelajari selama pelatihan, tetapi disetel secara manual atau menggunakan teknik pencarian otomatis
- Deployment, merupakan tahap akhir saat model yang sudah dilatih dan dievaluasi diterapkan dalam lingkungan produksi untuk digunakan pada aplikasi nyata, yang melibatkan integrasi model ke dalam sistem atau aplikasi yang akan memanfaatkan model untuk membuat prediksi atau keputusan
Sedangkan jenis Machine Learning, antara lain :
- Supervised learning atau pembelajaran terawasi, merupakan jenis ML dengan melibatkan pelatihan model menggunakan data yang sudah diberi label, diman setiap contoh dalam data pelatihan memiliki input dan output yang diketahui
- Unsupervised learning atau pembelajaran tak terawasi, melibatkan pelatihan model menggunakan data yang tidak memiliki label atau hasil yang sudah ditentukan, dimana data ini hanya berisi fitur-fitur yang mendeskripsikan informasi, tanpa informasi tentang hasil yang seharusnya.
- Semi-supervised learning (SSL), merupakan pendekatan dalam ML yang menggabungkan elemen dari supervised learning dan unsupervised learning, dimana model dilatih menggunakan data yang terdiri dari sebagian data berlabel (supervised) dan sebagian data tidak berlabel (unsupervised).
- Reinforcement learning (RL), merupakan salah satu cabang ML yang berfokus pada cara agen belajar mengambil tindakan dalam lingkungan tertentu agar memaksimalkan hadiah (reward) yang diterima lingkungan itu sendiri, dimana dalam RL, agen belajar melalui percobaan dan kesalahan; agen mencoba tindakan tertentu, melihat hasilnya (reward), serta memperbarui pengetahuannya tentang tindakan yang lebih baik pada situasi tertentu
Berikut contoh penerapan machine learning dalam penggunaan sehari-hari serta jenis pembelajaran yang digunakan, antara lain :
- Sistem Rekomendasi, seperti Netflix atau Amazon menggunakan ML untuk merekomendasikan film, acara, atau produk berdasarkan riwayat aktivitas pengguna, dimana Algoritma ML mempelajari preferensi pengguna dari pengumpulan data, seperti film yang ditonton sebelumnya atau riwayat pembelian produk, dan mencocokkannya dengan preferensi pengguna lain yang serupa, yang menggunakan teknik supervised learning atau unsupervised learning, seperti regresi atau klasifikasi, untuk memprediksi hal yang mungkin penggunan suka berdasarkan data historis dan perolehan umpan balik, karena algoritma dilatih menggunakan data yang telah diberi label (misalnya, film yang penggunana suka atau tidak suka) untuk membuat prediksi.
- Penyaringan Email Spam, seperti Gmail, ML digunakan untuk mengidentifikasi dan memfilter email spam, dimana algoritma ML menganalisis pola dan konten email, seperti kata-kata yang sering muncul dalam email spam dan membandingkannya dengan email yang pengguna tandai sebagai spam, menggunakan teknik supervised learning, dimana algoritma dilatih pada data email yang sudah diberi label (spam atau tidak spam) untuk mengklasifikasikan email baru, data pelatihan terdiri dari email yang sudah diberi label sebagai spam atau tidak spam dan model dilatih untuk mengklasifikasikan email baru berdasarkan label ini.
- Asisten Suara, seperti Siri atau Google Assistant menggunakan ML untuk memahami dan merespons perintah suara, diman algoritma ML memproses bahasa alami dengan menganalisis data suara dan konteks untuk memberikan jawaban atau melakukan tindakan, yang melibatkan teknik supervised learning dalam melatih model menggunakan data percakapan berlabel dan teknik unsupervised learning untuk memahami konteks serta makna dari data suara yang tidak terstruktur.
- Pengenalan Gambar atau Face Detection, seperti Facebook menggunakan ML untuk menandai wajah dalam foto, dimana algoritma pengenalan gambar mempelajari fitur wajah dari banyak foto yang telah diberi label, seperti nama orang dalam foto, kemudian dapat mengenali wajah baru dan mencocokkannya dengan profil yang ada, proses ini termasuk teknik supervised learning karena model dilatih dengan data gambar berlabel, data pelatihan berisi gambar yang sudah diberi label dengan nama orang dan model dilatih untuk mengenali wajah berdasarkan label tersebut.
- Deteksi Penipuan, seperti Bank menggunakan ML untuk mendeteksi transaksi yang mencurigakan, dimana algoritma menganalisis pola transaksi normal dan menyimpang untuk mendeteksi aktivitas yang tidak biasa, yang menggunakan unsupervised learning untuk menemukan pola yang tidak diketahui dalam data transaksi dan supervised learning jika data historis dengan label penipuan digunakan. Unsupervised learning digunakan untuk menemukan pola baru tanpa label, sedangkan supervised learning dimanfaatkan jika data penipuan yang sudah diberi label tersedia.
- Chatbot Layanan Pelanggan, seperti Chatbot menggunakan ML untuk memahami dan merespons pertanyaan pelanggan, dimana algoritma ini dilatih menggunakan data percakapan yang telah diberi label untuk belajar cara menjawab berbagai jenis pertanyaan. Supervised learning digunakan dalam melatih model dengan data percakapan yang sudah diberi label dan unsupervised learning untuk memahami pola dari data percakapan yang lebih luas. Supervised learning berguna dalam pelatihan awal dengan data yang diberi label serta unsupervised learning dipakai untuk memahami variasi dan konteks dalam data percakapan.
- Diagnostik Kesehatan, ML digunakan dalam analisis gambar medis, seperti MRI untuk membantu mendiagnosis penyakit, dimana algoritma ML dilatih dengan gambar medis yang sudah diberi label dengan kondisi kesehatan tertentu untuk mendeteksi penyakit atau kelainan. Supervised learning digunakan karena model dilatih menggunakan data gambar yang sudah diberi label dengan diagnosis medis. Data pelatihan berupa gambar medis yang telah diberi label dengan kondisi kesehatan dan model dilatih untuk mengenali pola dalam gambar berdasarkan label ini
Untuk membangun model machine learning diperlukan alur kerja yang biasa disebut machine learning workflow, yang meliputi :
- Proses Pengumpulan Data, dengan memahami masalah yang ingin diselesaikan dan tujuan bisnis yang ingin dicapai. Setelah masalah dipahami, langkah berikutnya adalah mengumpulkan data yang relevan dari berbagai sumber, seperti basis data, API, atau data publik.
- Exploratory Data Analysis (EDA), bertujuan untuk analisis awal terhadap data dan melihat bagaimana kualitas data untuk meminimalkan potensi kesalahan di kemudian hari, dilakukan investigasi awal pada data untuk memahami data, menemukan pola, anomali, menguji hipotesis, memahami distribusi, frekuensi, hubungan antara variabel, dan memeriksa asumsi dengan teknik statistik dan representasi grafik, yang meliputi analisa :
- Univariate Analysis, merupakan analisis yang melibatkan hanya satu variabel dalam satu waktu tertentu, yang bertujuan untuk memahami distribusi, central tendency (contoh: mean, median) dan penyebaran data (contoh: varians, standar deviasi) dari satu variabel. Contoh eksplorasi yang dapat dilakukan berupa histogram, box plot, bar plot, dan lain sebagainya
- Bivariate Analysis, merupakan analisis melibatkan dua variabel pada satu waktu tertentu untuk memahami hubungan atau asosiasi antar variabel yang digunakan, yang bertujuan untuk mengeksplorasi adanya hubungan antara dua variabel, apakah salah satunya memengaruhi yang lain, atau bagaimana kedua variabel tersebut berinteraksi, yang menggunakan visualisasi scatter plot, crosstab, box plot, dan lain sebagainya.
- Multivariate Analysis, merupakan analisis yang melibatkan lebih dari dua variabel pada satu waktu tertentu, mencakup tiga atau lebih variabel sekaligus yang tidak bisa dijelaskan dengan analisis univariate ataupun bivariate, akan membantu dalam mengidentifikasi pola tersembunyi atau interaksi antara variabel yang mungkin akan memengaruhi hasil, dan bisa divisualkan dengan menggunakan pair plot, heatmap, principal component analysis, dan lain sebagainya.
- Data Preprocessing, merupakan langkah penting dalam alur kerja machine learning yang bertujuan untuk mempersiapkan data mentah agar dapat digunakan secara efektif oleh model machine learning, yang mencakup pembersihan, transformasi, encoding, scaling, feature engineering, dan pengurangan dimensi, untuk memastikan bahwa data yang diberikan ke model machine learning berkualitas tinggi, terstruktur dengan baik, dan siap untuk dianalisis sehingga model dapat menghasilkan prediksi yang akurat dan andal
Beberapa hal yang bisa dilakukan dalam proses data cleaning seperti berikut :
- Mengidentifikasi dan Menangani Data yang Hilang, merupakan masalah umum dalam dataset yang harus ditangani, dengan cara menghapus data yang hilang atau melakukan imputasi data, yaitu mengganti data yang hilang dengan nilai lain (contoh: mean, median, modus dan lain sebagainya)
- Mengidentifikasi dan Menangani Outliers, merupakan data yang jauh berbeda dari mayoritas data lainnya, dan dapat memengaruhi performa model, terutama pada algoritma yang sensitif seperti regresi linear, dengan cara menghapus outlier, melakukan transformasi data, atau mengubah nilai menjadi lebih dekat ke distribusi normal.
Selain itu juga perlu dilakukan transformasi, beberapa cara untuk melakukan transformasi data, antara lain :
-
- Normalisasi (Normalization), Mengubah skala data sehingga berada dalam rentang tertentu, biasanya antara 0 dan 1.
- Standardisasi (Standardization), Mengubah data sehingga memiliki distribusi dengan mean 0 dan standar deviasi 1. Ini sering digunakan ketika data memiliki distribusi Gaussian.
- Transformasi Log atau Sqrt, Menggunakan transformasi logaritmik atau akar kuadrat untuk mengurangi skewness data.
- Encoding Variabel Kategorikal (Categorical Encoding), hanya dapat bekerja dengan data numerik sehingga variabel kategorikal harus diubah menjadi bentuk numerik. Beberapa cara yang bisa Anda lakukan untuk menyelesaikan permasalahan tersebut antara lain :
- Label Encoding: mengubah kategori menjadi label numerik. Ini cocok untuk variabel dengan hubungan ordinal.
- One-Hot Encoding: mengubah setiap kategori menjadi kolom biner terpisah (0 atau 1). Ini digunakan ketika tidak ada hubungan ordinal di antara kategori.
- Ordinal Encoding: mengubah kategori ke dalam bentuk label numerik berdasarkan urutan atau tingkatan.
- Feature Scaling, Ketika data memiliki fitur dengan skala yang berbeda-beda, fitur dengan skala lebih besar bisa mendominasi algoritma machine learning tertentu seperti K-Nearest Neighbors atau Support Vector Machines. Untuk itulah fitur scaling diperlukan karena dapat mengatasi permasalahan tersebut. Berikut beberapa cara untuk melakukan feature scaling.
- Min-Max Scaling: mengubah fitur ke dalam rentang antara nilai minimum dan maksimum yang diinginkan.
- Standardization: skala fitur ke dalam distribusi Gaussian dengan mean 0 dan standar deviasi 1.
Proses train-test split juga merupakan bagian dari data preprocessing, yang merupakan langkah terakhir dalam preprocessing dengan membagi data menjadi set pelatihan (training set), set pengujian (test set), dan kadang-kadang set validasi (validation set). Hal tersebut memastikan bahwa model dievaluasi pada data yang tidak pernah dilihat sebelumnya untuk mengukur kinerja yang sebenarnya
- Model Selection, merupakan langkah penting dalam alur kerja machine learning yang melibatkan pemilihan algoritma terbaik untuk memecahkan masalah spesifik berdasarkan data yang tersedia. Pemilihan model yang tepat dapat secara signifikan memengaruhi kinerja akhir dari solusi machine learning. Langkah pertama dalam model selection adalah memahami jenis masalah yang ingin diselesaikan. Masalah machine learning biasanya dapat dibagi menjadi beberapa kategori utama seperti berikut.
- Masalah Klasifikasi, bertujuan untuk mengkategorikan input ke dalam kelas tertentu. Misalnya, spam vs non-spam.
- Masalah Regresi, bertujuan untuk memprediksi nilai kontinu. Misalnya, harga rumah berdasarkan fitur-fitur tertentu.
- Masalah Clustering, bertujuan untuk mengelompokkan data ke dalam grup yang tidak diketahui sebelumnya.
- Masalah Dimensionality Reduction, bertujuan untuk mengurangi jumlah fitur dalam dataset tanpa kehilangan informasi penting.
- Masalah Time Series,bertujuan untuk memprediksi nilai masa depan berdasarkan data historis.
Setelah menentukan kategori utama yang cocok untuk permasalahan yang ingin diselesaikan, Anda perlu melakukan eksplorasi algoritma untuk kategori yang sudah ditentukan. Pada tahap ini, Anda perlu melakukan pengujian awal atau baseline model dengan tujuan untuk menguji beberapa algoritma secara cepat sehingga mendapatkan gambaran awal tentang kinerja mereka pada dataset. Hal ini bisa dilakukan dengan menggunakan default hyperparameters tanpa penyesuaian khusus. Hasil baseline ini membantu dalam mengevaluasi seberapa kompleks atau sederhana model yang diperlukan. Dengan demikian, dalam konteks machine learning, model selection bisa berarti dua hal, yaitu pemilihan learning method atau algoritma machine learning dan pemilihan hyperparameter terbaik untuk metode machine learning yang dipilih.
- Model Evaluation, mengevaluasi model akhir pada data uji. Sederhananya, langkah evaluasi model dapat dijabarkan sebagai berikut.
- Memprediksi label pada data uji.
- Menghitung jumlah prediksi yang salah (error) kemudian membandingkannya dengan data label yang kita miliki.
- Dari data perbandingan ini, kita dapat menghitung akurasi atau performa model.
Beberapa metrik evaluasi yang umum digunakan tergantung pada jenis masalah yang dihadapi, contohnya seperti berikut.
-
- Akurasi: persentase prediksi yang benar dari total prediksi (digunakan untuk klasifikasi).
- Precision dan Recall: digunakan untuk masalah klasifikasi, terutama ketika data tidak seimbang.
- F1-Score: kombinasi precision dan recall yang lebih detail.
- Mean Squared Error (MSE) atau Mean Absolute Error (MAE): digunakan untuk regresi untuk mengukur seberapa jauh prediksi dari nilai sebenarnya.
- ROC-AUC Score: digunakan untuk mengevaluasi kinerja klasifikasi pada berbagai threshold.
Pada prinsipnya proses model evaluation adalah menilai kinerja model ML pada data baru, yaitu data yang belum pernah “dilihat” oleh model sebelumnya. Evaluasi model bertujuan untuk membuat estimasi generalisasi error (kesalahan) dari model yang dipilih, yaitu seberapa baik kinerja model tersebut pada data baru. Idealnya, model machine learning yang baik adalah model yang tidak hanya bekerja dengan baik pada data training, tetapi juga pada data baru.
- Deployment, merupakan salah satu langkah terpenting dalam alur kerja machine learning. Model yang telah dilatih dan diuji diterapkan ke dalam lingkungan produksi sehingga dapat digunakan oleh pengguna akhir atau sistem untuk membuat prediksi pada data baru. Proses ini tidak hanya mencakup memindahkan model dari fase pengembangan ke fase produksi, tetapi juga memastikan bahwa model berjalan dengan andal, cepat, dan aman dalam skala besar. cara melakukan deployment model dengan menyimpan model yang telah dilatih dari tahap preprocessing hingga pipeline prediksi. Kemudian, deploy model tersebut ke tahap produksi untuk membuat prediksi dengan memanggil kode predict()-nya
-
Monitoring, Ketika sebuah model machine learning sudah diterapkan dalam produksi dan digunakan oleh pengguna, pekerjaan belum selesai. Model ini masih perlu terus dipantau untuk memastikan bahwa ia tetap berfungsi dengan baik dan memberikan hasil yang akurat. Oleh karena itu, Anda mungkin perlu membangun sistem yang dapat melakukan pembaruan dataset dan pelatihan ulang model secara otomatis. Sistem ini bisa dijadwalkan untuk memproses data baru setiap minggu atau bulan, melatih model dengan data tersebut, dan kemudian menerapkan model yang telah diperbarui ke dalam produksi. Dengan begitu, model Anda akan selalu up-to-date dan siap untuk memberikan hasil yang relevan meskipun lingkungan data di sekitar terus berubah. Sistem otomatis ini tidak hanya meningkatkan efisiensi, tetapi juga memastikan bahwa kualitas model tetap terjaga sepanjang waktu tanpa perlu intervensi manual yang sering