Implementasi Ensemble Learning dan Hyperparameter Optimization untuk Prediksi Kualitas Wine Berbasis Machine Learning
Implementasi Ensemble Learning dan Hyperparameter Optimization untuk Prediksi Kualitas Wine
** Abstrak**
Kualitas wine merupakan salah satu aspek penting dalam proses evaluasi produk, yang secara umum dapat dipengaruhi oleh berbagai karakteristik fisikokimia. Penelitian ini menerapkan Machine Learning untuk memprediksi kategori kualitas wine berdasarkan karakteristik fisikokimia menggunakan Ensemble Learning dan Hyperparameter Optimization. Dataset yang digunakan adalah Wine Quality Dataset dari UCI Machine Learning Repository yang terdiri dari data wine merah dan putih. Setelah proses penggabungan data dan penghapusan data duplikat, diperoleh 5.320 data yang digunakan dalam eksperimen. Target kualitas dikonversi menjadi klasifikasi biner, yaitu Low Quality untuk skor di bawah 6 dan High Quality untuk skor 6 atau lebih. Lima model dibandingkan, yaitu Logistic Regression, Decision Tree, Random Forest, Gradient Boosting, dan XGBoost. Validasi dilakukan menggunakan Stratified 5-Fold Cross-Validation, sedangkan optimasi dilakukan menggunakan GridSearchCV pada model XGBoost. Hasil pengujian menunjukkan bahwa XGBoost yang telah dioptimasi menghasilkan performa terbaik pada data pengujian dengan Accuracy sebesar 77,63% dan F1-Score sebesar 82,60%. Hasil ini meningkat dibandingkan XGBoost sebelum optimasi yang memperoleh F1-Score sebesar 81,68%. Temuan ini menunjukkan bahwa Ensemble Learning dan pemilihan hyperparameter dapat meningkatkan performa prediksi kualitas wine.
Kata kunci: Machine Learning, Ensemble Learning, Wine Quality, Random Forest, XGBoost, Hyperparameter Optimization.
1. Pendahuluan
Kualitas suatu produk wine dapat dipengaruhi oleh berbagai karakteristik fisikokimia yang dapat diukur melalui pengujian laboratorium. Pemanfaatan Machine Learning dapat digunakan untuk menemukan pola dari karakteristik tersebut dan menghasilkan model yang mampu memprediksi kategori kualitas wine.
Wine Quality Dataset yang tersedia pada UCI Machine Learning Repository merupakan dataset yang berisi sampel wine Vinho Verde merah dan putih dari wilayah utara Portugal. Dataset tersebut dikembangkan untuk memodelkan kualitas wine berdasarkan pengujian fisikokimia. UCI menyediakan 11 variabel input, antara lain fixed acidity, volatile acidity, citric acid, residual sugar, chlorides, sulfur dioxide, density, pH, sulphates, dan alcohol, sedangkan variabel output adalah skor kualitas wine dari 0 sampai 10. Dataset dapat digunakan untuk permasalahan klasifikasi maupun regresi.
Penelitian sebelumnya oleh Cortez et al. menggunakan karakteristik fisikokimia untuk memodelkan preferensi kualitas wine dan menunjukkan bahwa pendekatan data mining dapat digunakan untuk mendukung evaluasi wine berdasarkan karakteristik yang tersedia.
Dalam penelitian ini, pendekatan Ensemble Learning digunakan karena metode tersebut memungkinkan penggabungan sejumlah model pembelajaran untuk menghasilkan prediksi yang lebih kuat dibandingkan penggunaan satu model saja. Beberapa metode yang digunakan adalah Random Forest, Gradient Boosting, dan XGBoost. Selain itu, dilakukan Hyperparameter Optimization menggunakan GridSearchCV untuk mengetahui apakah pemilihan parameter yang lebih sesuai dapat meningkatkan performa model.
Penelitian ini memiliki tiga tujuan utama. Pertama, membandingkan performa model baseline dengan model Ensemble Learning. Kedua, mengevaluasi performa model menggunakan Stratified 5-Fold Cross-Validation. Ketiga, melakukan Hyperparameter Optimization terhadap XGBoost dan membandingkan performanya sebelum dan sesudah optimasi.
2. Dataset
Dataset yang digunakan adalah Wine Quality Dataset dari UCI Machine Learning Repository. Dataset resmi terdiri dari dua kelompok data, yaitu red wine dan white wine. UCI mencatat bahwa dataset memiliki 11 fitur fisikokimia dan variabel quality sebagai output dengan nilai antara 0 sampai 10. Dataset tidak memiliki missing value pada atribut yang disediakan.
Dalam eksperimen ini, dataset red wine dan white wine digabungkan menjadi satu dataset.
Dataset awal terdiri dari:
| Dataset | Jumlah Data |
|---|---|
| Red Wine | 1.599 |
| White Wine | 4.898 |
| Total | 6.497 |
Setelah dilakukan pemeriksaan duplicate, ditemukan 1.177 data duplikat. Data tersebut kemudian dihapus sehingga jumlah data yang digunakan dalam pemodelan menjadi 5.320 data. Hasil tersebut berasal langsung dari eksperimen pada Google Colab.
Fitur yang digunakan dalam penelitian adalah:
- Fixed acidity
- Volatile acidity
- Citric acid
- Residual sugar
- Chlorides
- Free sulfur dioxide
- Total sulfur dioxide
- Density
- pH
- Sulphates
- Alcohol
Kolom type digunakan untuk membedakan red wine dan white wine pada tahap penggabungan data, tetapi tidak digunakan sebagai fitur prediktor.
3. Preprocessing Data
Tahap preprocessing dilakukan sebelum proses pelatihan model.
3.1 Penggabungan Dataset
Data red wine dan white wine digabungkan menggunakan pandas.concat(). Setelah proses tersebut terdapat 6.497 observasi dan 13 kolom, termasuk kolom tambahan type.
3.2 Pemeriksaan Missing Value
Pemeriksaan dilakukan menggunakan fungsi isnull().sum(). Hasil eksperimen menunjukkan bahwa seluruh variabel memiliki nilai missing sebesar 0. Dengan demikian, tidak diperlukan metode imputasi pada dataset.
3.3 Penghapusan Duplicate
Pemeriksaan duplicate menemukan 1.177 data yang memiliki nilai identik. Data tersebut dihapus menggunakan drop_duplicates(). Jumlah observasi akhir menjadi 5.320.
3.4 Transformasi Target
Dataset asli menggunakan skor kualitas antara 0 sampai 10. Untuk memenuhi kebutuhan klasifikasi, target diubah menjadi dua kategori:
- Low Quality: quality < 6
- High Quality: quality ≥ 6
Dengan demikian, model melakukan klasifikasi biner dengan:
-
0= Low Quality -
1= High Quality
Pembagian tersebut merupakan keputusan metodologis dalam penelitian ini untuk mengubah skor kualitas menjadi permasalahan klasifikasi biner.
3.5 Pembagian Data
Dataset dibagi menjadi data training dan testing dengan proporsi:
- 80% data training
- 20% data testing
Parameter stratify digunakan agar distribusi kelas tetap terjaga pada kedua bagian dataset.
Dari 5.320 data:
- Training = 4.256
- Testing = 1.064
4. Metodologi
Eksperimen menggunakan dua kelompok model, yaitu baseline dan Ensemble Learning.
4.1 Logistic Regression
Logistic Regression digunakan sebagai baseline model untuk mengetahui performa metode klasifikasi sederhana sebelum dibandingkan dengan metode ensemble.
4.2 Decision Tree
Decision Tree digunakan sebagai baseline tambahan. Model ini membuat keputusan berdasarkan aturan pemisahan fitur hingga menghasilkan kelas prediksi.
4.3 Random Forest
Random Forest merupakan metode Ensemble Learning berbasis Bagging yang membangun sejumlah decision tree dan menggabungkan hasil prediksi dari tree tersebut.
4.4 Gradient Boosting
Gradient Boosting merupakan metode Ensemble Learning berbasis Boosting yang membangun model secara bertahap sehingga model berikutnya dapat memperbaiki kesalahan model sebelumnya.
4.5 XGBoost
XGBoost digunakan sebagai salah satu metode Boosting. Model ini kemudian dipilih untuk tahap Hyperparameter Optimization.
5. Evaluasi Model
Empat metrik digunakan dalam evaluasi:
Accuracy
Accuracy menunjukkan proporsi prediksi yang benar terhadap seluruh data.
Precision
Precision menunjukkan proporsi prediksi positif yang benar dari seluruh prediksi positif.
Recall
Recall menunjukkan kemampuan model dalam menemukan seluruh data yang termasuk kelas positif.
F1-Score
F1-Score merupakan kombinasi antara precision dan recall. Metrik ini digunakan sebagai salah satu metrik utama karena distribusi kelas pada dataset tidak sepenuhnya seimbang.
Selain metrik tersebut, Confusion Matrix digunakan untuk melihat distribusi prediksi benar dan salah pada masing-masing kelas.
6. Hasil Eksperimen
Hasil pengujian pada data testing adalah sebagai berikut.
| Model | Accuracy | Precision | Recall | F1-Score |
|---|---|---|---|---|
| Logistic Regression | 75,28% | 76,97% | 86,34% | 81,39% |
| Decision Tree | 68,80% | 74,78% | 75,68% | 75,22% |
| Random Forest | 77,16% | 79,83% | 84,98% | 82,33% |
| Gradient Boosting | 76,69% | 79,03% | 85,44% | 82,11% |
| XGBoost | 76,22% | 78,88% | 84,68% | 81,68% |
| XGBoost Optimized | 77,63% | 80,48% | 84,83% | 82,60% |
Hasil tersebut diambil dari output eksperimen pada notebook Google Colab.
Berdasarkan tabel tersebut, Decision Tree memperoleh performa terendah dengan F1-Score sebesar 75,22%. Sebaliknya, model ensemble memberikan performa yang lebih baik. Random Forest menghasilkan F1-Score sebesar 82,33%, sedangkan Gradient Boosting menghasilkan 82,11%.
XGBoost sebelum optimasi memperoleh F1-Score sebesar 81,68%. Setelah dilakukan Hyperparameter Optimization, F1-Score meningkat menjadi 82,60%.
Dengan demikian, XGBoost Optimized menjadi model dengan F1-Score tertinggi pada data pengujian.
7. Cross-Validation
Untuk memastikan performa model tidak hanya bergantung pada satu pembagian data, dilakukan Stratified 5-Fold Cross-Validation.
Hasil Cross-Validation berdasarkan F1-Score adalah:
| Model | Mean F1 | Standard Deviation |
|---|---|---|
| Random Forest | 82,08% | 1,28% |
| Gradient Boosting | 81,07% | 1,26% |
| XGBoost | 80,95% | 1,42% |
| Logistic Regression | 80,19% | 0,87% |
| Decision Tree | 74,45% | 1,22% |
Hasil eksperimen menunjukkan bahwa Random Forest memiliki rata-rata F1-Score Cross-Validation tertinggi, yaitu 82,08%.
Hal ini menunjukkan bahwa Random Forest memberikan performa yang relatif konsisten pada lima fold yang digunakan.
Namun, hasil Cross-Validation perlu dibedakan dari hasil pengujian akhir. Pada test set, XGBoost Optimized memperoleh F1-Score tertinggi sebesar 82,60%.
8. Hyperparameter Optimization
Tahap optimasi dilakukan terhadap model XGBoost menggunakan GridSearchCV dengan Stratified 5-Fold Cross-Validation.
Parameter yang dicari meliputi:
n_estimatorsmax_depthlearning_ratesubsamplecolsample_bytree
Konfigurasi terbaik yang ditemukan adalah:
| Hyperparameter | Nilai |
|---|---|
n_estimators |
200 |
max_depth |
5 |
learning_rate |
0,05 |
subsample |
0,8 |
colsample_bytree |
0,8 |
Best Cross-Validation F1-Score yang diperoleh GridSearchCV adalah 81,69%.
9. Perbandingan Sebelum dan Sesudah Optimasi
Perbandingan XGBoost sebelum dan sesudah optimasi:
| Metrik | XGBoost | XGBoost Optimized |
|---|---|---|
| Accuracy | 76,22% | 77,63% |
| Precision | 78,88% | 80,48% |
| Recall | 84,68% | 84,83% |
| F1-Score | 81,68% | 82,60% |
Optimasi meningkatkan:
- Accuracy sebesar 1,41 percentage points
- Precision sebesar 1,60 percentage points
- Recall sebesar 0,15 percentage points
- F1-Score sebesar 0,92 percentage points
Hasil tersebut menunjukkan bahwa pemilihan hyperparameter yang lebih sesuai memberikan peningkatan performa pada model XGBoost.
10. Confusion Matrix
Pada XGBoost Optimized, terdapat 1.064 data pengujian.
Hasil classification report menunjukkan:
| Kelas | Precision | Recall | F1-Score | Support |
|---|---|---|---|---|
| Low Quality | 72% | 66% | 69% | 398 |
| High Quality | 80% | 85% | 83% | 666 |
Accuracy keseluruhan adalah sekitar 78%.
Confusion Matrix menunjukkan bahwa model memiliki kemampuan lebih baik dalam mengenali kelas High Quality dibandingkan Low Quality. Hal tersebut terlihat dari nilai recall High Quality sebesar 85%, sedangkan recall Low Quality sebesar 66%.
Dengan kata lain, model masih lebih sering mengalami kesalahan ketika mengidentifikasi wine yang termasuk Low Quality.
11. Feature Importance
Untuk mengetahui kontribusi relatif setiap fitur terhadap model XGBoost Optimized, dilakukan analisis Feature Importance.
Hasilnya:
| Ranking | Feature | Importance |
|---|---|---|
| 1 | Alcohol | 0,2591 |
| 2 | Volatile Acidity | 0,1251 |
| 3 | Density | 0,0851 |
| 4 | Free Sulfur Dioxide | 0,0818 |
| 5 | Sulphates | 0,0803 |
| 6 | Total Sulfur Dioxide | 0,0687 |
| 7 | Residual Sugar | 0,0654 |
| 8 | Chlorides | 0,0646 |
| 9 | Citric Acid | 0,0602 |
| 10 | Fixed Acidity | 0,0559 |
| 11 | pH | 0,0537 |
Fitur alcohol memiliki nilai importance paling tinggi, yaitu sekitar 0,2591, diikuti oleh volatile acidity sebesar 0,1251.
Hasil ini menunjukkan bahwa alcohol memiliki kontribusi relatif paling besar terhadap keputusan model dalam eksperimen ini. Namun, feature importance tidak dapat diartikan sebagai hubungan sebab-akibat antara fitur dan kualitas wine.
12. Pembahasan
Hasil eksperimen menunjukkan adanya perbedaan performa antara model baseline dan Ensemble Learning.
Decision Tree memperoleh F1-Score sebesar 75,22%, sedangkan Logistic Regression memperoleh 81,39%. Ketika menggunakan metode ensemble, performa meningkat. Random Forest memperoleh F1-Score 82,33% dan Gradient Boosting memperoleh 82,11%.
Random Forest juga menunjukkan hasil terbaik dalam Cross-Validation dengan rata-rata F1 sebesar 82,08%. Hal ini menunjukkan bahwa Random Forest mampu memberikan performa yang relatif stabil selama proses validasi.
XGBoost sebelum optimasi memperoleh F1-Score 81,68%. Setelah dilakukan GridSearchCV, performanya meningkat menjadi 82,60%. Peningkatan ini menunjukkan bahwa konfigurasi hyperparameter berpengaruh terhadap performa model.
Menariknya, Random Forest tetap memiliki Mean F1 Cross-Validation sedikit lebih tinggi dibandingkan XGBoost. Oleh karena itu, hasil penelitian tidak menunjukkan bahwa XGBoost selalu menjadi model terbaik. XGBoost Optimized hanya memberikan performa test-set terbaik dalam eksperimen ini.
Perbedaan antara hasil Cross-Validation dan test set juga menunjukkan pentingnya menggunakan lebih dari satu pendekatan evaluasi. Cross-Validation memberikan gambaran performa model pada beberapa pembagian data, sedangkan test set digunakan untuk mengevaluasi model pada data yang tidak digunakan dalam proses pelatihan.
13. Keterbatasan Penelitian
Penelitian ini memiliki beberapa keterbatasan.
Pertama, target asli dataset berupa skor kualitas dari 0 sampai 10 diubah menjadi dua kategori berdasarkan threshold 6. Pengubahan tersebut menyederhanakan permasalahan tetapi menyebabkan informasi mengenai perbedaan antar skor kualitas menjadi hilang.
Kedua, dataset yang digunakan hanya menyediakan karakteristik fisikokimia dan skor kualitas. UCI menjelaskan bahwa informasi seperti jenis anggur, merek, dan harga tidak tersedia dalam dataset.
Ketiga, penelitian menggunakan data yang berasal dari dataset publik sehingga performa model belum dapat dianggap mewakili seluruh jenis wine di dunia.
Keempat, performa model masih dapat dikembangkan menggunakan teknik lain seperti class weighting, resampling, feature selection, Bayesian Optimization, atau pendekatan Ensemble Learning lainnya.
14. Kesimpulan
Penelitian ini menerapkan Machine Learning untuk memprediksi kualitas wine menggunakan pendekatan Ensemble Learning dan Hyperparameter Optimization. Dataset yang digunakan adalah Wine Quality Dataset dari UCI Machine Learning Repository. Setelah preprocessing dan penghapusan 1.177 data duplikat, diperoleh 5.320 data untuk eksperimen.
Lima model dibandingkan, yaitu Logistic Regression, Decision Tree, Random Forest, Gradient Boosting, dan XGBoost. Hasil pengujian menunjukkan bahwa model ensemble secara umum memberikan performa lebih baik dibandingkan Decision Tree sebagai baseline.
Random Forest menghasilkan performa Cross-Validation terbaik dengan Mean F1 sebesar 82,08%. Sementara itu, pada data pengujian, XGBoost Optimized memberikan performa terbaik dengan Accuracy sebesar 77,63%, Precision sebesar 80,48%, Recall sebesar 84,83%, dan F1-Score sebesar 82,60%.
Hyperparameter Optimization meningkatkan F1-Score XGBoost dari 81,68% menjadi 82,60%. Dengan demikian, eksperimen menunjukkan bahwa penerapan Ensemble Learning yang dikombinasikan dengan Hyperparameter Optimization dapat meningkatkan performa prediksi kualitas wine.
Berdasarkan Feature Importance, alcohol menjadi fitur dengan kontribusi relatif terbesar terhadap prediksi model, diikuti oleh volatile acidity dan density. Hasil ini dapat menjadi dasar untuk penelitian lebih lanjut dengan menambahkan metode feature selection, teknik optimasi yang lebih luas, atau mempertahankan skor kualitas sebagai permasalahan regresi.
15. Referensi
Cortez, P., Cerdeira, A., Almeida, F., Matos, T., & Reis, J. (2009). Wine Quality [Dataset]. UCI Machine Learning Repository. https://doi.org/10.24432/C56S3T
Cortez, P., Cerdeira, A., Almeida, F., Matos, T., & Reis, J. (2009). Modeling wine preferences by data mining from physicochemical properties. Decision Support Systems, 47(4), 547–553. https://doi.org/10.1016/j.dss.2009.05.016