Praktikum Modul 8 OVERFITTING & Underfitting
1. Persiapan & Import Library
Pada tahap awal ini kita memuat pustaka (library) Python yang dibutuhkan untuk eksperimen. Library NumPy digunakan untuk operasi numerik berbasis array, Matplotlib (matplotlib.pyplot) dipakai untuk membuat visualisasi grafik, dan modul-modul dari scikit-learn (sklearn) digunakan untuk kebutuhan Machine Learning seperti pembagian data, pembuatan model, evaluasi performa, serta pembuatan fitur polinomial.
Istilah penting yang perlu dipahami adalah model, yaitu fungsi terlatih yang memetakan input (fitur) ke output (target), serta pipeline yang berfungsi menyatukan beberapa langkah (misalnya transformasi fitur dan model) agar alur kerja lebih rapi dan terkontrol.
Tujuan dari langkah ini adalah menyiapkan seluruh alat yang diperlukan agar kode pada tahap berikutnya dapat dijalankan tanpa error.
2. Membuat Dataset Dummy
Dataset dummy (buatan) dibuat menggunakan fungsi make_regression agar pola data bersifat sederhana dan terkontrol. Dataset ini terdiri dari fitur (X) sebagai variabel input dan target (y) sebagai variabel yang ingin diprediksi.
Kita juga menambahkan noise (gangguan acak) supaya data tidak terlalu “bersih” dan lebih menyerupai kondisi dunia nyata. Selanjutnya, data dibagi menjadi training set dan testing set menggunakan train_test_split.
Data latih digunakan untuk melatih model, sedangkan data uji digunakan untuk mengevaluasi kemampuan generalisasi model pada data baru. Tujuan langkah ini adalah memastikan eksperimen bersifat realistis dan dapat membedakan performa model pada data latih dan data uji.
3. Visualisasi Data Awal
Sebelum membangun model, kita memvisualisasikan sebaran data latih dan data uji menggunakan scatter plot. Visualisasi ini membantu kita memahami bentuk hubungan antara fitur (X) dan target (y), apakah cenderung linear atau memiliki kelengkungan.
Selain itu, visualisasi awal juga membantu memeriksa sebaran data uji terhadap data latih serta memperkirakan tingkat noise pada data. Langkah ini penting agar pemilihan model tidak dilakukan secara “membabi buta”, melainkan berdasarkan intuisi awal dari data.
4. Fungsi Bantu: Visualisasi Prediksi Model
Pada tahap ini dibuat sebuah fungsi bantu (utility function) untuk menampilkan garis prediksi model di atas titik-titik data latih dan data uji. Fungsi ini memudahkan perbandingan beberapa model secara visual dengan cara yang konsisten.
Dengan mengamati apakah garis prediksi terlihat terlalu kaku (cenderung garis lurus) atau terlalu berliku (mengikuti hampir semua titik data), kita dapat mengenali indikasi underfitting dan overfitting secara intuitif.
5. Eksperimen 1 – Underfitting (Linear Regression Sederhana)
Pada eksperimen pertama, kita melatih model Linear Regression yang mengasumsikan hubungan linear (garis lurus) antara fitur dan target. Model ini sangat sederhana sehingga pada data dengan pola non-linear, model cenderung mengalami underfitting.
Akibatnya, performa model menjadi buruk baik pada data latih maupun data uji karena gagal menangkap pola yang lebih kompleks. Performa dievaluasi menggunakan metrik MSE (Mean Squared Error) dan R² (R-squared).
Tujuan eksperimen ini adalah menunjukkan contoh nyata perilaku underfitting.
6. Eksperimen 2 – Overfitting (Polynomial Regression Derajat Tinggi)
Pada eksperimen kedua, kita melatih Polynomial Regression dengan derajat (degree) yang tinggi. Hal ini dilakukan dengan membuat Polynomial Features (misalnya X, X², X³, dan seterusnya) lalu menerapkan regresi linear pada fitur yang telah diperluas.
Model menjadi sangat fleksibel dan mampu mengikuti data latih secara detail. Namun, kondisi ini sering menyebabkan overfitting, di mana error pada data latih sangat kecil tetapi error pada data uji menjadi besar.
7. Eksperimen 3 – Mengurangi Overfitting dengan Regularization (Ridge)
Untuk mengurangi overfitting, digunakan Ridge Regression (L2 regularization). Metode ini menambahkan penalti terhadap bobot model yang terlalu besar agar model tidak terlalu mengikuti noise pada data.
Parameter alpha mengontrol kekuatan penalti. Semakin besar nilai alpha, semakin halus kurva prediksi yang dihasilkan. Dengan pemilihan alpha yang tepat, dapat dicapai keseimbangan antara bias dan variance.
8. Perbandingan dengan Lasso Regression (L1 Regularization)
Sebagai alternatif, digunakan Lasso Regression (L1 regularization). Berbeda dengan Ridge, Lasso mampu mengecilkan beberapa koefisien hingga bernilai nol sehingga berfungsi sebagai seleksi fitur otomatis.
Dengan mencoba berbagai nilai alpha, kita dapat melihat perbedaan karakteristik L1 dan L2 dalam mengatur kompleksitas model, sekaligus memahami bahwa terdapat lebih dari satu pendekatan dalam regularisasi.
9. Learning Curve (Train vs Validation)
Tahap terakhir adalah menggambar learning curve, yaitu grafik performa model (menggunakan RMSE) pada data latih dan data validasi terhadap bertambahnya ukuran data latih.
Kurva ini membantu mendeteksi:
– Overfitting: error train rendah, error validation tinggi dan saling menjauh.
– Underfitting: error train dan validation sama-sama tinggi dan tidak membaik.
Perhitungan dilakukan menggunakan cross-validation untuk memperoleh estimasi performa yang lebih stabil. Tujuan akhir langkah ini adalah memberikan alat diagnostik visual untuk menentukan apakah perlu menambah data, mengubah kompleksitas model, atau menyesuaikan hyperparameter.
➡️ Klik di sini untuk membuka file Google Drive (kode praktikum lengkap)Disusun oleh: [Muhammad Rifaldi] - [20232010011]
Program Studi: [Bisnis Digital], Universitas Kuningan
Referensi
Sumber utama:
Modul Praktikum Machine Learning & AI, disusun oleh Adi Muhamad Muhsidi (2025).
Program Studi Bisnis Digital, Fakultas Ekonomi dan Bisnis, Universitas Kuningan.
Link flipbook: https://heyzine.com/flip-book/cbbbf75431.html
Atau dapat diakses langsung dari blog pribadi penulis di:
https://adi-muhamad.my.id

Posting Komentar