Kinerja siswa dalam lingkungan pendidikan memainkan peran penting dalam menentukan keberhasilan akademik dan masa depan mereka. Dalam era digital saat ini, institusi pendidikan memiliki akses ke berbagai data terkait aktivitas belajar siswa, seperti nilai ujian, kehadiran, partisipasi dalam kegiatan ekstrakurikuler, dan data demografis. Namun, potensi data ini seringkali belum dimanfaatkan secara maksimal untuk memberikan wawasan yang dapat membantu meningkatkan hasil belajar siswa.
Pendekatan tradisional dalam mengevaluasi kinerja siswa cenderung bersifat reaktif, hanya memberikan perhatian setelah masalah terjadi, seperti penurunan nilai atau tingkat kehadiran yang rendah. Oleh karena itu, diperlukan solusi yang bersifat prediktif untuk mengidentifikasi potensi risiko lebih awal, sehingga institusi pendidikan dapat mengambil langkah-langkah preventif untuk mendukung siswa secara proaktif.
Predictive analytics memungkinkan institusi pendidikan untuk mengidentifikasi pola performa siswa berdasarkan data historis. Teknologi ini membantu dalam pengambilan keputusan yang proaktif untuk memberikan intervensi yang tepat waktu dan mendukung siswa dalam mencapai hasil terbaik. Pada kasus ini penulis menerapkan 4 model pembelajaran machine learning yakni Random Forest, Naive Bayes, Support Vector Machine (SVM) dan Extreme Gradient Boosting (XGBoost). Pendekatan ini mengintegrasikan keunggulan dari berbagai model untuk membandingkan dan menemukan algoritma terbaik dalam memprediksi performa siswa berdasarkan dataset yang diperoleh dari kaggel dan dapat diakses pada tautan berikut (https://www.kaggle.com/datasets/rabieelkharoua/students-performance-dataset). Dengan menggunakan model ini, diharapkan hasil prediksi yang akurat dapat membantu institusi pendidikan dalam merancang strategi pembelajaran yang lebih efektif dan personalisasi untuk siswa.
Berdasarkan latar belakang tersebut, maka rincian permasalahan yang dapat dibahas pada proyek ini yakni:
- Berapa banyak waktu belajar mingguan (Study Time Weekly) yang optimal untuk meningkatkan GPA siswa?
- Apakah absensi siswa (Absences) berkorelasi negatif dengan GPA mereka?
- Apakah tutoring (bimbingan belajar) memengaruhi GPA siswa?
- Apakah terdapat perbedaan performa akademik antara siswa laki-laki dan perempuan (Gender) dalam hal GPA?
- Bagaimana partisipasi siswa dalam kegiatan ekstrakurikuler (Extracurricular, Sports, Music, Volunteering) memengaruhi GPA mereka?
- Apakah dukungan orang tua (Parental Support) berhubungan langsung dengan GPA siswa?
- Faktor mana yang paling berpengaruh terhadap prediksi GPA siswa ketika mempertimbangkan semua atribut (Age, Gender, Parental Education, Study Time Weekly, Absences, Tutoring, Parental Support, Extracurricular, Sports, Music, Volunteering)
- Apa model terbaik yang dapat digunakan untuk memprediksi kinerja siswa?
Berdasarkan problem statements, berikut tujuan yang ingin dicapai pada proyek ini.
- Menampilkan durasi belajar yang lebih efektif.
- Mendeteksi pola absensi yang berdampak pada penurunan performa akademik.
- Menilai pengaruh bimbingan belajar untuk meningkatkan performa siswa.
- Mengidentifikasi apakah ada kesenjangan gender dalam pencapaian akademik.
- Menilai dampak kegiatan non-akademik terhadap kinerja akademik.
- Mengukur pentingnya keterlibatan orang tua dalam keberhasilan belajar siswa.
- Mengukur Faktor yang paling berpengaruh terhadap prediksi GPA Siswa
- Menemukan model terbaik berdasarkan akurasi tertinggi untuk memprediksi kinerja siswa.
- Melakukan proses Exploratory Data Analysis (EDA) untuk menampilkan durasi belajar yang lebih efektif, mendeteksi pola absensi yang berdampak pada penurunan performa akademik, menilai efektivitas bimbingan belajar untuk meningkatkan performa siswa, mengidentifikasi apakah ada kesenjangan gender dalam pencapaian akademik, menilai dampak kegiatan non-akademik terhadap kinerja akademik, mengukur pentingnya keterlibatan orang tua dalam keberhasilan belajar siswa
- Menggunakan 4 model machine learning yaitu Extreme Gradient Boosting (XGBoost), Support Vector Machine (SVM), Naive Bayes, dan Random Forest untuk memprediksi kinerja siswa
- Menggunakan confusion matrix dan f1 score pada masing-masing model machine learning untuk menemukan model terbaik berdasarkan akurasi tertinggi.
Dataset yang digunakan untuk mempredisksi kinerja siswa diambil dari platform kaggle yang dapat diakses pada tautan berikut (https://www.kaggle.com/datasets/rabieelkharoua/students-performance-dataset) yang dipublikasikan oleh Rabie El Kharoua pada tanggal 13 Juni 2024. Kumpulan data ini berisi informasi lengkap tentang 2.392 siswa sekolah menengah, yang merinci demografi, kebiasaan belajar, keterlibatan orang tua, kegiatan ekstrakurikuler, dan prestasi akademik mereka. Variabel target, GradeClass, mengklasifikasikan nilai siswa ke dalam kategori yang berbeda, sehingga menyediakan kumpulan data yang kuat untuk penelitian pendidikan, pemodelan prediktif, dan analisis statistik. Dataset ini terdiri dari 1 file csv.
Infromasi dataset tersebut dapat dilihat pada gambar dibawah ini:
Dari gambar yang ditampilkan, terdapat 12 variabel bertipe int64 dan 3 variabel bertipe fload64
Dataset ini memiliki 15 variabel dengan keterangan sebagai berikut.
Variabel | Keterangan |
---|---|
StudentID | Pengidentifikasi unik yang diberikan kepada setiap siswa (1001 hingga 3392) |
Age | Usia siswa berkisar antara 15 hingga 18 tahun |
Gender | Jenis kelamin siswa, di mana 0 mewakili Laki-laki dan 1 mewakili Perempuan |
Ethnicity | Etnis siswa, dikodekan sebagai berikut: 0(Kaukasia), 1(Afrika Amerika), 2(Asia), 3(Lainnya) |
ParentalEducation | Tingkat pendidikan orang tua, dikodekan sebagai berikut: 0(Tidak Ada), 1(Sekolah Menengah Atas), 2(Beberapa Perguruan Tinggi), 3(Sarjana), 4(Lebih Tinggi) |
StudyTimeWeekly | Waktu belajar mingguan dalam jam, berkisar antara 0 hingga 20 |
Absences | Jumlah ketidakhadiran selama tahun ajaran, berkisar antara 0 hingga 30 |
Tutoring | Status bimbingan belajar, di mana 0 menunjukkan Tidak dan 1 menunjukkan Ya |
ParentalSupport | Tingkat dukungan orang tua, dikodekan sebagai berikut: 0(Tidak Ada), 1(Rendah), 2(Sedang), 3(Tinggi), 4(Sangat Tinggi) |
Extracurricular | Partisipasi dalam kegiatan ekstrakurikuler, di mana 0 menunjukkan Tidak dan 1 menunjukkan Ya |
Sports | Partisipasi dalam olahraga, di mana 0 menunjukkan Tidak dan 1 menunjukkan Ya |
Music | Partisipasi dalam kegiatan musik, di mana 0 menunjukkan Tidak dan 1 menunjukkan Ya |
Volunteering | Partisipasi dalam kesukarelaan, di mana 0 menunjukkan Tidak dan 1 menunjukkan Ya |
GPA | Nilai Rata-rata Poin pada skala 2,0 hingga 4,0 |
GradeClass | Klasifikasi nilai siswa berdasarkan IPK (0: 'A' (IPK >= 3,5)), (1: 'B' (3,0 <= IPK < 3,5)), (2: 'C' (2,5 <= IPK < 3,0)), (3: 'D' (2,0 <= IPK < 2,5)), (4: 'F' (IPK < 2,0)) |
Pada tahap ini kita akan mengecek data yang tidak valid pada dataset. Setelah diperiksa apakah terdapat kolom yang bernilai null, hasilnya adalah tidak ada. Sedangkan data duplikat atau data ganda juga tidak ada. Maka dengan demikian data siapa untuk dianalisis pada tahap selanjutnya.
Pada tahap ini, karena dataset kita tipe kategorikal sudah dalam bentuk nilai numerik, maka kita perlu membuat fungsi konversi nilai number kategorikal ke objek (string). Tujuan dari langkah ini yaitu untuk menampilkan label fitur visualisasi dalam proses analisis data dengan teknik Univariate EDA dan Multivariate EDA.
Ada beberapa tahap yang akan kita lakukan, yakni:
Tahap pertama, membagi variabel-variabel menjadi 2 jenis, yaitu variabel numerikal dan variabel kategorikal. Berikut merupakan kolom-kolom yang termasuk dalam variabel numerikal maupun kategorikal.
Semua numerikal: ["Age", "StudyTimeWeekly", "Absences", "GPA"]
Semua kategorikal: ["Gender", "Ethnicity", "ParentalEducation", "Tutoring", "ParentalSupport", "Extracurricular", "Sports", "Music", "Volunteering", "GradeClass"]
Tahap kedua, kita akan melihat nilai berbeda pada kolom kategorikal pada gambar tabel dibawah ini:
Dapat dilihat pada tabel nilai berbeda pada:
- Kolom gender = 2;
- Kolom Etnicity = 4;
- Kolom ParentalEducation = 5;
- Kolom Tutoring = 2;
- Kolom ParentalSupport = 5;
- Kolom Extracurricular = 2;
- Kolom Sports = 2;
- Kolom Music = 2;
- Kolom Volunteering = 2;
- Kolom GradeClass(Variabel Target) = 5;
Tahap ketiga, Pada tahap ini, kita akan membuat visualisasi data kategorikal dalam bentuk grafik dengan menggunakan library python matplotlib. Hasilnya seperti gambar dibawah ini:
- Grafik jenis kelamin, menunjukan jumlah merata antara laki-laki dan perempuan.
- Grafik Etnis, menunjukan mayoritas siswa berasal dari etnis kaukasia.
- Grafisk pendidikan orangtua, menunjukan mayoritas pendidikan orang tua yakni pensisikan tinggi dan sarjana
- Grafik bimbingan belajar, menunjukan mayoritas siswa tidak mengikuti bimbingan belajar.
- Grafik dukungan orang tua, menunjukan mayoritas dukungan orang tua berada di level sdang dan tinggi.
- Grafik Ekstrakulikuler(EKtrakulikuler, Olahraga, Musik dan Sukrelawan), menujukan rendahnya minat siswa pada kegiatan diluar sekolah.
Tahap keempat, kita akan membuat visualisasi data numerikal dalam bentuk grafik dengan menggunakan library python matplotlib
. Hasilnya seperti gambar dibawah ini:
- Pada kolom Age, dapat dilihat rata-rata siswa berumur 15-17 tahun. Dapat disimpulkan tidak ada Outlier yang tersebar.
- Pada kolom StudyTimeWeekly, dapat dilihat bahwa rata-rata siswa memiliki waktu belajar 5-14 jam per minggu.
- Pada kolom absences, dapat dilihat bahwa rata-rata siswa memiliki jumlah ketidakhadiran 6 - 23 hari. Dapat disimpulkan 1. Pada kolom
- Pada kolom GPA, dapat dilihat bahwa rata-rata prestasi siswa diantara 1,2 - 2,7 dan tidak memiliki outlier.
Tahap yang kelima, kita akan melihat lebih detail mengenai jumlah dari masing-masing tingkat kelas terbaik yang menjadi target kita untuk mengetahui jumlah secara umum.
Interpretasi:
Kelas terbaik (GradeClass) yang ditampilkan menununjukan mayoritas prestasi siswa berada di kategori Grade F(Prestasi terendah) yakni 1211 siswa sedangkan minioritas siswa berada pada kategori Grade A (Kelas tertinggi) yakni 107
Tahap keenam, kita akan melihat persebaran data dari masing-masing kategori kelas pada kolom GradeClass:
- Siswa berada pada Grade F (kelas terendah) memiliki presentasi terbayak yakni 50.6%.
- Siswa berada pada Grade A (kelas tertinggi) memiliki presentasi sedikit yakni 4.5%.
- Siswa yang lainnya berada pada Grade B (11.2%), Grade C(16.3%) dan Grade D (17.3%)
Langkah terakhir, kita akan membentuk histogram dari variabel-variabel numerikal untuk melihat persebaran data:
Interpretasi:
Usia, waktu belajar setiap minggu, absen dan nilai siswa cukup berdistribusi normal.
Pada bagian ini, akan ditunjukan hubungan antara dua variabel biasa disebut sebagai bivariate EDA. Selanjutnya, kita akan melakukan analisis data pada fitur kategori dan numerik.
1. Ananlisis data pada fitur numerik StudyTimeWeekly (Waktu belajar setiap minggu) dengan GPA (Nilai Prestasi)
Interpretasi:
Siswa yang waktu belajaranya banyak mempengaruhi naiknya prestasi belajar(GPA).
Interpretasi:
Absen(ketidakhadiran) siswa sangat mempengaruhi turun prestasinya(GPA).
3. Ananlisis data pada fitur kategori Tutoring (Bimbingan Belajar) dengan GradeClass (Kategori Kelas)
Interpretasi:
Banyak siswa yang tidak mengikuti bimbingan belajar yang mendapat prestasi rendah (Grade F)
Interpretasi:
Jenis kelamin pria lebih dominan memiliki prestasi lebih tinggi dibandingkan dengan wanita
5. Ananlisis data pada fitur kategori kegiatan non akademik (Extracurricular, Sports, Music, Volunteering) dengan GPA (Nilai Prestasi)
Interpretasi:
Lebih banyak siswa yang tidak mengikuti kegiatan ekstrakulikuler, olahraga dan musik mempengaruhi turunya nilai pretasi(GPA) mereka
6. Ananlisis data pada fitur kategori ParentalSupport (Dukungan Orang Tua) dengan GradeClass (Kategori Kelas)
Interpretasi:
Mayoritas dukungan orang tua sangat mempengaruhin nilai prestasi siswa (GPA). Semakin tinggi dukungan orang tua, maka semakin meningkat nilai prestasi dari anaknya.
Nilai Prestasi Siswa memiliki
- Korelasi negatif yang cukup kuat dengan ketidakhadiran(Absences).
- Korelasi positif yang cukup lemah dengan waktu belajar setiap minggu(StudyTimeWeekly).
Nilai prestasi siswa (GPA) memiliki korelasi negatif yang kuat pada ketidakhadiran (garis regresi menurun ke kanan bawah) dan korelatif positif cukup lemah pada waktu belajar setiap minggu (garis regresi naik ke kanan atas)
Pada tahap ini kita akan melakukan proses transformasi pada data sehingga menjadi bentuk yang cocok untuk proses pemodelan. Ada beberapa tahap persiapan data perlu dilakukan, yaitu:
- Drop kolom yang tidak digunakan dalam pemrosesan data
- Encoding fitur kategori
- Pembagian dataset dengan fungsi train_test_split dari library sklearn.
Pada tahap ini ada beberapa kolom pada dataset yang tidak perlu digunakan dalam pemrosesan data yakni StudentID
, Ethnicity
dan ParentalEducation
. Kolom-kolom ini akan dihapus menggunakan fungsi drop()
. Hasilnya dapat dilihat pada gambar dibawah ini:
Hasilnya menampilkan variabel kolom StudentID
, Ethnicity
dan ParentalEducation
sudah terhapus. Dataset siswa yang akan kita proses saat ini terdiri dari 2 tipe data float64, 2 tipe data int64 dan 8 tipe data objek(string).
Pada bagian ini, karena dataset fitur kategori kita sebelumnya sudah diubah dalam bentuk objek (string) pada tahap eksplorasi data analis maka kita perlu mengubah data kategori (yang berbentuk teks atau label) menjadi format numerik agar dapat diproses oleh algoritma machine learning. Encoding Fitur Kategorikal dilakukan 3 bagian, yakni:
- Label Encoding yaitu, mengonversi nilai kategori menjadi angka integer (
0
dan1
)). Variabel yang akan diproses yakni:
a. Tutoring (Apakah siswa mengikuti bimbingan belajar?)
b. Extracurricular (Apakah siswa mengikuti kegiatan ektrakulikuler?)
c. Sports (Apakah siswa mengikuti kegiatan olahraga?
d. Music (Apakah siswa mengikuti kegiatan musik?)
e. Volunteering (Apakah siswa mengikuti kegiatan sukarelaan?) - One Hot Ecoding yaitu mengubah setiap kategori menjadi kolom biner terpisah untuk data tidak terurut). Variabel yang akan diproses yakni Gender.
- Ordinal Encoding yaitu memberikan nilai integer berdasarkan hierarki atau urutan kategori). Variabel yang akan diproses yakni ParentalSupport. Hasil setelah dilakukan data preprocessing dapat dilihat pada gambar berikut:
Langkah awal kita mengubah data objek ke data numeri dengan memanggil fungsi konversi objek to numerik. Selanjutnya, karena target kita adalah variabel GradeClass untuk mengetahui akurasi prediksi dari kategori kelas prestasi terbaik, maka kita akan membuang kolom tersebut dari data dan assign kolom tersebut ke variabel baru. Data training digunakan untuk melatih model dengan data yang ada, sedangkan data testing digunakan untuk menguji model yang dibuat menggunakan data yang belum dilatih. Pembagian data ini dilakukan dengan perbandingan 80% : 20% untuk data training dan data testing menggunakan train_test_split dari library sklearn. Berikut adalah data traning yang akan diproses (ditampilkan contoh 5 baris teratas):
Kemudian, kita melihat jumlah masing-masing GradeClass (Kategori Kelas) pada data testing untuk selanjutnya ditransformasikan menggunakan LabelEncoder()
. LabelEncoder()
berfungsi untuk memetakan setiap kategori unik dalam kolom GradeClass menjadi angka integer mulai dari 0
Pada bagian ini, kita akan membangun 4 model machine learning untuk menguji sebarapa baik akurasi model, sehingga model tersebut yang disarankan untuk memprediksi prestasi siswa.
Algoritma pembelajaran ensemble yang sangat populer untuk tugas klasifikasi dan regresi. Ini bekerja dengan membuat sejumlah pohon keputusan selama pelatihan dan menggabungkan hasilnya (melalui voting untuk klasifikasi atau rata-rata untuk regresi) untuk meningkatkan akurasi dan mengurangi overfitting..
Pada pemodelan ini, Random Forest diimplementasikan menggunakan RandomForestClassifier
dari library sklearn.ensemble
dengan memasukkan X_train
dan y_train
untuk melatih model, lalu menggunakan X_test
dan y_test
untuk menguji model dengan data testing yang tidak ada di data training. Parameter yang digunakan pada model ini adalah n_estimators
yaitu jumlah tree yang akan dibuat, criterion
yaitu fungsi untuk menentukan kualitas splitting data, max_depth
yaitu kedalaman maksimum setiap tree, dan random_state
yaitu mengontrol seed acak yang diberikan pada setiap iterasi. Pada proyek ini, parameter yang digunakan adalah n_estimators = 200
, criterion = "entropy"
, max_depth = 10
, random_state = 50
.
Algoritma Extreme Gradient Boosting merupakan salah satu algoritma boosting yang sangat kuat untuk tugas klasifikasi dan regresi. XGBoost dirancang untuk efisiensi, fleksibilitas, dan performa tinggi, serta sering digunakan dalam kompetisi machine learning.
Pada pemodelan ini, XGBoost diimplementasikan menggunakan XGBClassifier
dari library xgboost
dengan memasukkan X_train
dan y_train
untuk melatih model, lalu menggunakan X_test
dan y_test
untuk menguji model dengan data testing yang tidak ada di data training. Parameter yang digunakan pada model ini adalah max_depth
yaitu kedalaman maksimum setiap tree, n_estimators
yaitu jumlah tree yang akan dibuat, random_state
yaitu mengontrol seed acak yang diberikan pada setiap iterasi, learning rate
yaitu mengatur langkah setiap iterasi ketika meminimumkan loss function, dan n_jobs
yaitu mengatur jumlah CPU threads untuk menjalankan XGBoost. Pada proyek ini, parameter yang digunakan adalah max_depth =
6,
n_estimators = 125,
random_state = 30,
learning_rate = 0.01,
n_jobs = -1`.
Algoritman ini sangat efektif untuk klasifikasi dan regresi. SVM bekerja dengan mencari hyperplane optimal yang memisahkan data dalam ruang fitur, serta mendukung kernel untuk menangani data non-linear.
Pada pemodelan ini, SVM diimplementasikan menggunakan SVC
dari library sklearn.svm
dengan memasukkan X_train
dan y_train
untuk melatih model, lalu menggunakan X_test
dan y_test
untuk menguji model dengan data testing yang tidak ada di data training. Parameter yang digunakan pada model ini adalah kernel
yaitu tipe kernel yang digunakan untuk mentransformasikan input data, gamma
yaitu pengaruh dari sebuah contoh training, dan random_state
yaitu mengontrol seed acak yang diberikan pada setiap iterasi. Pada proyek ini, parameter yang digunakan adalah kernel = 'rbf'
, gamma = 'auto'
, random_state = 50
.
Algoritman ini merupakan algoritma klasifikasi berbasis probabilistik yang didasarkan pada Teorema Bayes. Algoritma ini bekerja dengan asumsi bahwa semua fitur saling independen (meskipun dalam kenyataan sering tidak sepenuhnya demikian).
Pada pemodelan ini, Naive Bayes diimplementasikan menggunakan GaussianNB
dari library sklearn.naive_bayes
karena datanya numerik dengan memasukkan X_train
dan y_train
untuk melatih model, lalu menggunakan X_test
dan y_test
untuk menguji model dengan data testing yang tidak ada di data training. Parameter var_smoothing
berfungsi menambahkan nilai kecil (var_smoothing
) ke varians dari setiap fitur. Sedangkan Nilai 1e-9
adalah representasi ilmiah untuk angka 0.000000001
(atau 10⁻⁹
). Ini digunakan untuk menambahkan nilai kecil pada varians, sehingga tidak ada nilai varians yang terlalu kecil untuk menghasilkan masalah numerik.
Pada proyek ini, penilaian model menggunakan confusion matrix, akurasi, dan f1 score sebagai metrik evaluasi untuk masing-masing model. Akan dijelaskan terlebih dahulu bagaimana cara mendapatkan akurasi dan f1 score serta bagaimana cara menggunakan confusion matrix.
- Matriks Confusion merupakan matriks yang menunjukkan jumlah prediksi benar dan salah untuk setiap kelas. Contoh dari Matriks Confusion beserta labelnya dapat dilihat pada gambar di bawah ini.
Formatnya:
[[TP, FP],
[FN, TN]]
Terdapat 4 label pada matriks confusion seperti yang terlihat di gambar, yaitu TP, TN, FP, dan FN. a. True Positive (TP) merupakan jumlah data pada positif yang ditebak dengan benar. b. True Negative (TN) merupakan jumlah data pada negatif yang ditebak dengan benar. c. False Positive (FP) merupakan jumlah data yang ditebak dengan salah karena diprediksi positif, sedangkan aslinya adalah negatif. d. False Negative (FN) merupakan jumlah data yang ditebak dengan salah karena diprediksi negatif, sedangkan aslinya adalah positif.
- Akurasi merupakan Persentase prediksi benar terhadap total prediksi.
Formatnya:
4. Skor F1 merupakan rata-rata harmonik dari precision dan recall.
Formatnya:
5. Precision merupakan proporsi prediksi positif yang benar-benar benar.
Rumusnya:
Contoh: Jika model memprediksi 10 data sebagai positif, tetapi hanya 7 yang benar-benar positif, maka precision adalah 7/10 = 0.7.
- Recall (Sensitivity) merupakan proporsi data positif yang terdeteksi dengan benar oleh model.
Rumusnya:
Contoh: Jika model memprediksi 10 data sebagai positif, tetapi hanya 7 yang benar-benar positif, maka precision adalah 7/10 = 0.7.
Berikut merupakan matriks confusion, akurasi, dan skor f1 dari model Random Forest
Dari gambar di atas, terdapat 8 data yang diprediksi salah pada Grade A dan 14 data yang diprediksi salah pada Grade F. Diperoleh skor F1 nya adalah 0.93 dengan akurasi tepatnya adalah 0.9269 atau ≈92.69%.
Berikut merupakan matriks confusion, akurasi, dan skor f1 dari model XGBoots
Dari gambar di atas, terdapat 5 data yang diprediksi salah pada Grade A dan 15 data yang diprediksi salah pada Grade F. Diperoleh skor F1 nya adalah 0.93 dengan akurasi tepatnya adalah 0.9332 atau ≈93.32%.
Berikut merupakan matriks confusion, akurasi, dan skor f1 dari model SVM
Dari gambar di atas, terdapat 16 data yang diprediksi salah pada Grade A dan 28 data yang diprediksi salah pada Grade F. Diperoleh skor F1 nya adalah 0.77 dengan akurasi tepatnya adalah 0.7808 atau ≈78.08%.
Berikut merupakan matriks confusion, akurasi, dan skor f1 dari model Naive Bayes
Dari gambar di atas, terdapat 19 data yang diprediksi salah pada Grade A dan 13 data yang diprediksi salah pada Grade F. Diperoleh skor F1 nya adalah 0.79 dengan akurasi tepatnya adalah 0.7933 atau ≈79.33%.
Dari seluruh akurasi yang diketahui dari keempat model, dibentuk bar plot untuk melihat perbandingan nilai akurasi model sebagai berikut.
Berdasarkan gambar di atas dan evaluasi masing-masing model untuk mengetahui skor akurasi, skor F1, dan jumlah kesalahan klasifikasi pada masing-masing model, didapat model XGBoots merupakan model terbaik karena memiliki skor akurasi dan skor F1 tertinggi, serta jumlah kesalahan klasifikasi yang paling sedikit, terutama pada Grade A.
Berdasarkan hasil yang diperoleh setelah melakukan proses EDA dan pengujiaan model terbaik untuk peningkatan prestasi siswa dapat dismpulkan bahwah:
- Terdapat hubungan positif antara durasi belajar mingguan yang lebih tinggi dengan performa akademik (GPA dan GradeClass), namun tidak terlalu signifikan kenaikannya. Oleh karena itu, direkomendasikan waktu belajar berada diatas 20 jam per minggu.
- Tingkat absensi yang tinggi secara konsisten menunjukkan korelasi negatif dengan performa akademik. Siswa dengan absensi tinggi cenderung memiliki GPA lebih rendah. Oleh karena iu, perlu diidentifikasi siswa dengan pola absensi tinggi untuk intervensi dini.
- Siswa yang tidak mengikuti bimbingan belajar menunjukkan GPA yang lebih rendah dibandingkan mereka yang mengikuti. Olehkarena itu siswa perlu disiplin mengikuti bimbingan belajar.
- Jenis kelamin yang berbeda memiliki prestasi yang tidak jauh berbeda. Dari data yang diperoleh, mayoritas perempuan mengalami penurunan prestasi pada Grade F, Grade D, Grade B dan Grade A dibandingkan dengan laki-laki.
- Terjadi penurunan sedikit nilai pretasinya(GPA) siswa yang tidak mengikuti kegiatan ekstrakulikuler, olahraga dan musik. Sedangkan untuk kegiatan sukarelaan terlihat merata atau seimbang.
- Siswa yang menerima dukungan orang tua memiliki nilai rata-rata lebih tinggi dibandingkan yang tidak.
- Exploratory Data Analysis (EDA) menunjukkan bahwa performa akademik siswa dipengaruhi oleh kombinasi faktor internal (seperti durasi belajar dan pola absensi) serta faktor eksternal (seperti keterlibatan orang tua dan partisipasi dalam kegiatan non-akademik)
- Setelah menguji data menggunakan 4 model machine learning, yaitu Extreme Gradient Boosting (XGBoost), Support Vector Machine (SVM), Naive Bayes dan Random Forest untuk memprediksi performa siswa, diperoleh:
- XGBoost adalah model terbaik untuk memprediksi performa siswa pada dataset ini, dengan akurasi dan F1-Score tertinggi.
- Random Forest memberikan hasil yang hampir setara dengan XGBoost dan lebih mudah diimplementasikan.
- SVM memberikan performa baik tetapi memerlukan penyesuaian parameter untuk hasil optimal.
- Naive Bayes adalah model tercepat namun memiliki performa yang jauh lebih rendah karena asumsi independensi antar fitur yang tidak sesuai dengan dataset.
- Abdul Rahman. "Klasifikasi Performa Akademik Siswa Menggunakan Metode Decision Tree dan Naive Bayes", Vol. 13 No.1 (2023) 22-31, ISSN 2503-3247. SINTA Peringkat 4, diakses pada 28 November 2024.
- Dicoding. Diakses pada 6 Juli 2024 dari https://www.dicoding.com/academies/319-machine-learning-terapan
- Arif Fahrudin1, Harco Leslie Hendric Spits Warnars. "Prediksi Performa Siswa Dengan Metode SAW", vol. 9, no. 1, 2020, P-ISSN 2089-1245, E-ISSN 2655-4925. KILAT, diakses pada 29 November 2024.