Project ini bertujuan untuk membedakan dua jenis pistachio (Kirmizi Pistachio dan Siit Pistachio) berdasarkan fitur citra (image features), dataset gambar serta data excel.
Dengan memanfaatkan algoritma machine learning dan deep learning, project ini melakukan klasifikasi menggunakan berbagai pendekatan seperti Random Forest, SVM, KNN, Logistic Regression, Neural Network, dan Boosting Models.
Dataset diperoleh dari Kaggle:
π Pistachio Image Dataset β Kaggle
Dataset terdiri dari:
- Gambar pistachio terbagi dalam 2 kelas:
- π° Kirmizi Pistachio (1.232 gambar)
- π° Siit Pistachio (916 gambar)
- File Excel/CSV berisi 28 fitur citra (shape, warna, statistik), seperti:
- Area β luas objek
- Perimeter β keliling objek
- Eccentricity β keoval-an bentuk
- Roundness β kebulatan
- Solidity, Aspect Ratio, Compactness
- Statistik Warna (Mean, StdDev, Skewness, Kurtosis)
- Class β Label target (Kirmizi / Siit)
-
Import Library π
Menggunakan Python dengan library sepertiscikit-learn
,tensorflow/keras
,pandas
,numpy
,matplotlib
,seaborn
. -
Load Dataset π
- Membaca data Excel (28 fitur)
- Memetakan gambar ke tiap label
-
EDA (Exploratory Data Analysis) π
- Distribusi kelas (Kirmizi vs Siit)
- Statistik deskriptif fitur utama
- Visualisasi distribusi fitur shape & warna
-
Data Mining βοΈ
- Standardisasi fitur numerik (StandardScaler)
- PCA (Principal Component Analysis) untuk reduksi dimensi
-
Modeling π€
Algoritma yang diterapkan meliputi:- π² Random Forest
- π Support Vector Classifier (SVC)
- πΊοΈ K-Nearest Neighbors (KNN)
- π― Logistic Regression
- π§ Neural Network (MLPClassifier & Keras Sequential)
- π₯ Boosting (AdaBoost, Gradient Boosting)
Evaluasi dilakukan dengan:
- Confusion Matrix
- Classification Report (Precision, Recall, F1-score)
- Akurasi (%)
Performa model berdasarkan evaluasi:
Model | Accuracy | Precision (avg) | Recall (avg) | F1-Score (avg) |
---|---|---|---|---|
π² Random Forest | 89.07% | 0.89 | 0.89 | 0.89 |
π Support Vector Classifier | 93.02% | 0.93 | 0.93 | 0.93 |
π― Logistic Regression | 91.86% | 0.92 | 0.92 | 0.92 |
πΊοΈ KNN Classifier | 90.00% | 0.90 | 0.90 | 0.90 |
π₯ AdaBoost | 91.16% | 0.91 | 0.91 | 0.91 |
π Gradient Boost | 90.93% | 0.91 | 0.91 | 0.91 |
π§ Multi-Layer Perceptron (MLP) | 93.26% | 0.93 | 0.93 | 0.93 |
Hasil evaluasi menunjukkan bahwa Multi-Layer Perceptron (MLP) dan Support Vector Classifier (SVC) adalah model dengan performa terbaik, masing-masing mencapai akurasi lebih dari 93% dengan nilai precision, recall, dan f1-score yang konsisten tinggi. Model linear seperti Logistic Regression serta metode ensemble seperti AdaBoost dan Gradient Boosting juga memberikan hasil yang kompetitif dengan akurasi sekitar 91%. Sementara itu, Random Forest dan KNN masih memberikan hasil yang baik, namun sedikit lebih rendah dibandingkan model lainnya.