Repository ini berisi implementasi dari Modul 4 Machine Learning yang berfokus pada teknik Clustering (Unsupervised Learning). Studi kasus yang digunakan dalam proyek ini adalah segmentasi morfologi biji kacang kering menggunakan dataset Dry Bean Dataset.
Dataset ini berisi 13.611 data biji kacang kering dari 7 varietas berbeda (SEKER, BARBUNYA, BOMBAY, CALI, DERMASON, HOROZ, SIRA). Data diambil menggunakan kamera beresolusi tinggi, di mana dari citra tersebut diekstraksi 16 fitur morfologi fisik seperti area, perimeter, panjang sumbu (axis length), kelingkaran (circularity), dan sebagainya.
Tujuan Proyek:
Mengelompokkan biji kacang berdasarkan karakteristik morfologi fisiknya secara unsupervised menggunakan algoritma K-Means Clustering tanpa menggunakan label kelas (varietas aslinya). Proyek ini juga bertujuan menganalisis apakah cluster yang terbentuk secara otomatis oleh K-Means berkorelasi dengan varietas biji kacang yang sebenarnya.
machine_learning_clustering_drybean.ipynb: Notebook utama berisi seluruh alur kerja mulai dari pemuatan data, eksplorasi, pembersihan, scaling, clustering, evaluasi, hingga penyimpanan model.Dry_Bean_Dataset.xlsx: Dataset mentah yang digunakan untuk proses clustering..venv/: Virtual environment Python untuk menjaga dependensi project agar terisolasi.
Proyek ini dibangun menggunakan bahasa pemrograman Python. Berikut adalah pustaka (library) utama yang diperlukan:
- Data Manipulation:
numpy,pandas - Data Visualization:
matplotlib,seaborn - Machine Learning:
scikit-learnStandardScaler(untuk Feature Scaling)KMeans(Algoritma Clustering)silhouette_score,davies_bouldin_score,calinski_harabasz_score(Metrik Evaluasi Model)
- Model Deployment/Saving:
joblib
Di dalam Jupyter Notebook, analisis dilakukan secara terstruktur melalui tahapan berikut:
- Import Library: Memuat semua library yang dibutuhkan untuk komputasi.
-
Persiapan Dataset: Memuat file Excel
Dry_Bean_Dataset.xlsxdan melakukan eksplorasi data awal (EDA). - Data Cleaning: Menangani missing values dan data duplikat agar model lebih robust.
- Pemilihan Fitur untuk Clustering: Memilih fitur morfologi yang relevan tanpa memasukkan label kelas/varietas.
-
Scaling Fitur: Menggunakan
StandardScaleruntuk menyamakan skala distribusi fitur morfologi yang bervariasi (misalnya: 'Area' dengan satuan puluhan ribu vs 'ShapeFactor' dengan skala nol koma). -
Clustering dengan K-Means:
- Eksplorasi centroid dan inersia K-Means.
- Penggunaan Elbow Method untuk mencari nilai parameter
$K$ yang optimal. - Implementasi final K-Means dengan nilai optimum.
- Visualisasi scatter plot cluster.
- Evaluasi Model Clustering: Mengevaluasi kinerja clustering menggunakan Silhouette Score, Davies-Bouldin Index, dan Calinski-Harabasz Score.
- Analisis Cluster: Melakukan profiling karakteristik morfologi untuk masing-masing klaster dan membandingkannya dengan varietas asli.
-
Simpan Model: Menyimpan model K-Means yang sudah dilatih dengan
joblib(.pkl) untuk kebutuhan deployment atau inferensi di masa depan. - Interpretasi dan Kesimpulan: Menyimpulkan insight yang diperoleh dari hasil pemodelan.
- Clone repositori atau unduh folder ini.
- Aktifkan Virtual Environment:
- Linux/macOS:
source .venv/bin/activate - Windows:
.venv\Scripts\activate
- Linux/macOS:
- Install Dependensi (Jika belum tersedia, silakan install library yang diperlukan):
pip install numpy pandas matplotlib seaborn scikit-learn openpyxl joblib jupyter
- Jalankan Jupyter Notebook:
jupyter notebook
- Buka file
machine_learning_clustering_drybean.ipynbdan jalankan cell (Shift + Enter) secara berurutan.
Dataset diambil dari UCI Machine Learning Repository (ID: 602).
Link Dataset Dry Bean