
KNN, SVM, dan Random Forest. Kemudian, untuk dapat mengetahui baseline model mana yang memiliki performa terbaik dapat dilakukan evaluasi menggunakan Confusion Matrix (Accuracy, Precision, Recall, F1 Score) yang juga divisualisasikan. Selanjutnya, model yang terpilih akan dibantu dengan grid search untuk menemukan hyperparameter yang memiliki performa terbaik. Terakhir, model tersebut dilakukan evaluasi menggunakan Confusion Matrix (Accuracy, Precision, Recall, F1 Score).pH: Tingkat pH air.Hardness: Ukuran kandungan mineral.Solids: Total padatan terlarut dalam air.Chloramines: Konsentrasi kloramin dalam air.Sulfate: Konsentrasi sulfat dalam air.Conductivity: Konduktivitas listrik di air.Organic_carbon: Kandungan karbon organik dalam air.Trihalomethanes: Konsentrasi trihalometan dalam air.Turbidity: Tingkat kekeruhan, ukuran kejernihan air.Potability: Variabel target. menunjukkan potabilitas air dengan nilai 1 (layak minum) dan 0 (tidak layak minum).count : Jumlah data dari sebuah kolommean : Rata-rata dari sebuah kolomstd : Standar deviasi dari sebuah kolommin : Nilai terendah pada sebuah kolom25% : Nilai kuartil pertama (Q1) dari sebuah kolom50% : Nilai kuartil kedua (Q2) atau median atau nilai tengah dari sebuah kolom75% : Nilai kuartil ketiha (Q3) dari sebuah kolommax : Nilai tertinggi pada sebuah kolom
Gambar 1a , terlihat bahwa Potability memiliki dua unique value, yaitu '1' yang menyatakan air layak minum dan '0' yang menyatakan air tidak layak minum. Namun, terlihat juga bahwa adanya imbalance data atau ketidakseimbangan data. nilai '0' memiliki baris data hingga nyaris 2000 baris data, sedangkan nilai '1' hanya memiliki sekitar 1250 baris data. Berangkat dari informasi ini, perlu dilakukan penyeimbangan agar tidak terjadi bias pada model machine learning yang akan dibangun.
Gambar 1b, gambar ini menampilkan setiap kolom numerik yang ada pada dataset, seperti pH, Hardness, Solids, Chrolamines, Sulfate, Conductivity, Organic_carbon, Trihalomethanes, Turbidity. Dari semua kolom yang ditampilkan, hanya kolom Solids dan Conductivity yang memiliki skewness ke arah kiri. Berikut adalah informasi singkat yang didapatkan dari visualisasi diatas:pH: Tingkat pH berkisar antara 0 hingga 14, dengan sebagian besar sampel memiliki pH sekitar 7, yang merupakan netral.Hardness: Kesadahan air bervariasi, dengan sejumlah besar sampel menunjukkan tingkat kesadahan sekitar 200.Solids: Terdapat kisaran total padatan terlarut dalam sampel, dengan konsentrasi puncak mendekati 20.000.Chloramines: Kadar kloramin dalam sampel mencapai puncaknya mendekati 7 atau 8.Sulfate: Konsentrasi sulfat mencapai puncaknya sekitar 300.Conductivity: Konduktivitas sampel menunjukkan puncak pusat mendekati 400.Organic_carbon: Nilai paling umum untuk kandungan karbon organik adalah sekitar 14 hingga 15.Trihalomethanes: Frekuensi kadar trihalomethane paling tinggi sekitar 65 hingga 70.Turbidity: Tingkat kekeruhan mencapai puncaknya sekitar 3,5.

Gambar 2a dan Gambar 2b, dapat terlihat nyaris semua variabel berkumpul di tengah dan tidak menunjukkan karakteristik atau pola khusus terhadap variabel label, yaitu 'Potability'. Bahkan, pada Gambar 2b sekalipun yang sudah di kategorikan berdasarkan 0 dan 1 (ditandai dengan warna oren dan biru) masih tidak terlihat karakterisik atau pola untuk value pada label tertentu. Kejadian ini mengindikasikan rendahnya korelasi antar fitur, bahkan dengan variabel label sekalipun.
Gambar 3a, terlihat bahwa kolom pH, Conductivity, Trihalomethanes, Turbidity memiliki skor korelasi yang paling kecil terhadap label. Kolom yang semacam ini baiknya di-drop saja untuk meringankan beban komputasi dan mengurangi dimensi dari dataset yang akan digunakan dalam pelatihan model.
Gambar 4a, terlihat jelas bahwa memang terdapat banyak kekosongan data atau missing value pada ketiga kolom, yaitu Sulfate, ph, dan Trihalomethanes. Kondisi ini perlu tindakan lebih lanjut agar tidak mempengaruhi performa model.'Potability':'0' agar menyesuaikan jumlah baris datanya dengan kelas '1''Potability' setelah dilakukan undersampling:Train Test Split sudah berhasil dilakukan.GridSearch digunakan ke model yang terpilih.
Random Forest terpilih sebagai model yang akan digunakan lebih lanjut dengan hyperparamter tuning karena memiliki performa train dan test yang tertinggi dibandingkan dengan 2 model lainnya. Kemudian, hasil Accuracy, Precision, Recall, dan F1 Score dari Random Forest juga menunjukkan hasil yang terbaik.GridSearch:GridSearch, kombinasi parameter yang terbaik adalah:max_depth: 10min_samples_leaf: 2min_samples_split: 5,n_estimators: 400max_depth: 10 Ini menentukan kedalaman maksimum pohon. Dalam kasus ini, pohon tidak akan tumbuh lebih dari 10 tingkat. Kedalaman yang lebih besar bisa meningkatkan keakuratan model tetapi juga meningkatkan risiko overfitting.min_samples_leaf: 2 Ini adalah jumlah sampel minimum yang diperlukan untuk menjadi daun pohon. Jadi, setiap daun harus memiliki setidaknya 2 sampel. Parameter ini membantu mengontrol overfitting dengan memastikan bahwa daun tidak terlalu spesifik hanya pada sampel pelatihan.min_samples_split: 5, Ini menunjukkan jumlah sampel minimum yang diperlukan untuk membagi simpul internal. Sebuah simpul akan dibagi jika memiliki 5 atau lebih sampel. Ini juga membantu mencegah overfitting dengan memastikan bahwa pembagian tidak terlalu spesifik.n_estimators: 400 Ini menunjukkan jumlah pohon dalam forest. Di sini, model akan menggunakan 400 pohon. Biasanya, semakin banyak pohon, semakin stabil prediksi model, tetapi juga akan membutuhkan lebih banyak waktu komputasi dan memori.GridSearc tersebut digunakan sebagai hyperparameter pembangunan model.Accuracy, Precision, Recall, dan F1 Score dari Confusion Matrix.
Accuracy, Precision, Recall, dan F1 Score dan cara kerjanya:AccuracyPrecisionRecallF1 ScoreAccuracy, Precision, Recall, dan F1 Score dari Confusion Matrix:Accuracy dengan menggunakan dataset test:Accuracy model menggunakan dataset test sebesar 61%. Hasilnya lebih besar dibandingkan dengan baseline model dari Random Forest tanpa hyperparameter tuning.Confusin Matrix:
Random Forest dengan hyperparameter tuning:Accuracy : 0.61Precision: 0.61Recall: 0.61F1-Score: 0.61Posted Jul 14, 2025
Developed a machine learning model for classifying drinking water quality.