Read Data
Kode di bawah menggunakan library pandas untuk membaca file csv bernama "diabetes.csv" dan menyimpannya dalam variabel data. Pandas adalah library Python yang digunakan untuk mengelola dan menganalisis data. Fungsi read_csv() akan membaca file csv dan mengembalikan data dalam bentuk objek DataFrame pandas. Objek DataFrame adalah struktur data tabular yang memungkinkan Kita untuk menyimpan dan bekerja dengan data dalam bentuk tabel yang terdiri dari baris dan kolom.
Fungsi info() dibawah akan menampilkan informasi tentang DataFrame seperti jumlah baris dan kolom, tipe data setiap kolom, jumlah data yang tidak null, dan memori yang digunakan oleh DataFrame. Informasi ini berguna untuk memahami struktur data dan mengecek apakah ada baris atau kolom yang kosong.
Fungsi head() akan menampilkan beberapa baris pertama dari DataFrame. Ini berguna untuk memeriksa apakah data telah dibaca dengan benar dan memahami struktur data secara umum. Secara default, fungsi head() akan menampilkan 5 baris pertama, tetapi Anda juga dapat menentukan jumlah baris yang ingin ditampilkan dengan menambahkan parameter ke fungsi tersebut, seperti data.head(10) untuk menampilkan 10 baris pertama. Sebagai contoh, output dari kode tersebut mungkin seperti ini:
Model Preparation
Kode di bawah akan mempersiapkan data untuk dibangun model machine learning. Pertama, library scikit-learn akan diimpor dan fungsi train_test_split() akan dipanggil untuk membagi data menjadi data latih dan data uji. Data latih akan digunakan untuk membangun model machine learning, sedangkan data uji akan digunakan untuk mengevaluasi performa model tersebut.
Kemudian, kolom Outcome akan dihilangkan dari DataFrame dan disimpan dalam variabel y. vKolom Outcome adalah variabel target yang akan diprediksi oleh model machine learning. Variabel X akan berisi seluruh kolom DataFrame kecuali kolom Outcome. Variabel X dan y akan digunakan sebagai input untuk fungsi train_test_split() yang akan membagi data menjadi data latih dan data uji.
Fungsi train_test_split() akan mengembalikan empat variabel, yaitu X_train dan y_train yang merupakan data latih, dan X_test dan y_test yang merupakan data uji. Parameter test_size digunakan untuk menentukan proporsi data yang akan digunakan sebagai data uji, sedangkan parameter random_state digunakan untuk menentukan seed random yang akan digunakan saat membagi data. Dengan menentukan random_state, hasil pembagian data akan selalu sama jika dijalankan dengan input yang sama.
Setelah kode di bawah dijalankan, data akan siap digunakan untuk membangun model machine learning. Data latih akan disimpan dalam variabel X_train dan y_train, sedangkan data uji akan disimpan dalam variabel X_test dan y_test. Kita dapat menggunakan data latih untuk membangun model machine learning dengan menggunakan library scikit-learn, dan menggunakan data uji untuk mengevaluasi performa model yang telah dibangun.
Naive Bayes
Kode di bawah akan membangun model naive Bayes dengan menggunakan data latih, kemudian menggunakan model tersebut untuk memprediksi data uji dan mengevaluasi performa model dengan menggunakan accuracy score.
Pertama, class GaussianNB dari scikit-learn akan diimpor dan objek naive Bayes akan dibuat dan disimpan dalam variabel nb. Kemudian, model naive Bayes akan dibangun dengan menggunakan fungsi fit() dari objek nb dan data latih. Setelah model dibangun, Kita dapat menggunakan model tersebut untuk memprediksi data uji dengan menggunakan fungsi predict() dari objek nb dan menyimpan hasil prediksi dalam variabel nb_predict.
Kemudian, fungsi accuracy_score() dari scikit-learn akan dipanggil untuk mengevaluasi performa model dengan menghitung seberapa banyak data uji yang terprediksi dengan benar oleh model. Fungsi ini akan mengembalikan nilai accuracy score, yang merupakan proporsi data uji yang terprediksi dengan benar oleh model. Nilai accuracy score yang tinggi menunjukkan bahwa model cukup baik untuk memprediksi data uji.
Setelah kode di bawah dijalankan, Kita akan mendapatkan nilai accuracy score dari model naive Bayes yang telah dibangun. Kita dapat menggunakan nilai ini sebagai acuan untuk mengevaluasi performa model naive Bayes yang telah dibangun. Jika nilai accuracy score cukup tinggi, maka model tersebut dapat digunakan untuk memprediksi data baru. Jika nilai accuracy score rendah, maka Kita dapat mempertimbangkan untuk mencoba membangun model machine learning yang lain atau mengubah parameter model yang telah dibangun untuk meningkatkan performanya.
KNN
Kode di bawah adalah contoh kode yang dapat digunakan untuk melakukan hyperparameter tuning pada model KNN. Pertama, kode ini membuat objek KNeighborsClassifier untuk membuat model KNN. Kemudian, kode ini menggunakan GridSearchCV untuk mencari nilai hyperparameter terbaik untuk model KNN. Setelah itu, kode ini menggunakan hyperparameter terbaik yang telah ditemukan untuk membuat model KNN baru dan melatihnya dengan data training. Terakhir, kode ini memprediksi data testing menggunakan model KNN yang telah dibuat dan menghitung skor akurasi dari model tersebut. Dengan menggunakan hyperparameter tuning, kita dapat membuat model KNN yang lebih baik dan akurat dalam memprediksi data.
Summary
Menampilkan plot accuracy score dari masing-masing algoritma, terlihat kedua algoritma akurasinya tidak jauh berbeda.
Confusion Matrix dari Algoritma Naive Bayes
Testing
Data yang akan digunakan untuk testing adalah 0,106,70,37,148,39.4,0.605,22. Kemudian hasil prediksi dari Naive Bayes dan KNN akan ditampilkan dengan menggunakan kalimat "Terkena Diabetes" jika prediksi bernilai 1 atau "Tidak Terkena Diabetes" jika prediksi bernilai 0.
Save Model
Kode di bawah akan menyimpan model naive Bayes dan KNN ke dalam file dengan ekstensi .pkl (pickle). File .pkl dapat digunakan untuk menyimpan model machine learning sehingga model tersebut dapat digunakan kembali tanpa perlu membangun ulang model dari awal.
Pertama, library joblib akan diimpor dan objek nb yang merupakan model naive Bayes akan disimpan dalam file 'nb_diabetes.pkl' dengan menggunakan fungsi dump() dari joblib. Kemudian, objek knn yang merupakan model KNN akan disimpan dalam file 'knn_diabetes.pkl' dengan menggunakan fungsi dump() yang sama.
Setelah kode di bawah dijalankan, Kita akan mendapatkan dua file yaitu 'nb_diabetes.pkl' dan 'knn_diabetes.pkl' yang berisi model naive Bayes dan KNN. Kita dapat membuka file tersebut kembali dengan menggunakan joblib untuk menggunakan model yang telah disimpan tersebut tanpa perlu membangun ulang model dari awal. Ini berguna jika Kita ingin menggunakan model yang telah dibangun sebelumnya di aplikasi atau proyek lain, atau jika Kita ingin membagikan model yang telah dibangun dengan orang lain.