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:

  1. Fixed acidity
  2. Volatile acidity
  3. Citric acid
  4. Residual sugar
  5. Chlorides
  6. Free sulfur dioxide
  7. Total sulfur dioxide
  8. Density
  9. pH
  10. Sulphates
  11. 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_estimators
  • max_depth
  • learning_rate
  • subsample
  • colsample_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

Story originally reported by Dev.to. View at Dev.to →
← Back to all news