Anda di halaman 1dari 7

Judul project : Menentukan Irish dengan menggunakan Algoritma KNN(K- Nearest

Neighbors)
Algoritma yang digunakan : KNN(K-Nearest Neighbors)
Penjelasan Algoritma :
1.

Kode di atas mengimport beberapa library yang digunakan dalam proses pembuatan
model KNN. Library yang digunakan diantaranya:

Pandas digunakan untuk memanipulasi data dalam format tabel


matplotlib dan seaborn digunakan untuk visualisasi data
Numpy digunakan untuk melakukan operasi matematika pada data
LabelEncoder digunakan untuk mengubah data kategori menjadi angka
StandardScaler digunakan untuk menstandarisasi data agar memiliki mean = 0 dan
standard deviation = 1
train_test_split digunakan untuk membagi data menjadi data latih dan data uji
KNeighborsClassifier digunakan untuk membuat model KNN
classification_report, confusion_matrix, dan ConfusionMatrixDisplay digunakan
untuk mengevaluasi model

Semua library yang digunakan di atas digunakan untuk melakukan proses


preprocessing data, pembuatan model KNN, dan evaluasi model. Proses ini dilakukan
untuk menentukan kelas mayoritas dari k tetangga terdekatnya dari data yang
diberikan.
2.

Kode di atas digunakan untuk mengambil data Iris dari sebuah URL yang diberikan
dan menyimpan data tersebut dalam variabel "df".

Baris pertama menentukan URL dari sumber data yang digunakan. Kemudian pada
baris kedua, variabel 'col_names' didefinisikan sebagai nama kolom dari data yang
akan diambil.

Pada baris ketiga, fungsi read_csv dari library pandas digunakan untuk membaca data
dari URL yang ditentukan dan menyimpan data tersebut dalam dataframe dengan
nama kolom yang ditentukan dalam variabel 'col_names'.

Fungsi read_csv memiliki parameter 'names' yang digunakan untuk memberikan nama
kolom pada dataframe. Jika tidak diisi, maka nama kolom akan diambil dari baris
pertama dari file csv yang diimport.

Pada baris keempat, variabel df ditampilkan untuk mengecek isi dari dataframe yang
telah diimport.

3.

Kode di atas menggunakan fungsi info() dari library pandas untuk menampilkan
informasi dari dataframe df. Fungsi ini akan menampilkan informasi seperti jumlah
baris, jumlah kolom, tipe data dari setiap kolom, dan jumlah data yang tidak
null/missing dari setiap kolom. Informasi ini berguna untuk memahami struktur data
yang digunakan dan mengecek apakah ada data yang kosong atau tidak.

4.

Kode di atas menggunakan fungsi unique() untuk mengecek nilai unik yang ada
dalam kolom Class dari dataframe df. Fungsi ini akan mengembalikan array yang
berisi nilai unik dari kolom yang dipilih.
Ini berguna untuk mengetahui jenis kelas yang ada dalam dataframe dan jumlah kelas
yang ada. Hal ini penting untuk dilakukan karena pada proses selanjutnya dibutuhkan
informasi ini sebagai target dari model yang akan dibangun.

5.

Kode di atas menggunakan fungsi describe() dari library pandas untuk menghitung
beberapa statistik dasar dari setiap kolom numerical dari dataframe df. Fungsi ini akan
mengembalikan sebuah tabel yang berisi informasi seperti:

 mean (rata-rata)
 standard deviation (simpangan baku)
 minimum
 25th percentile (Q1)
 median (Q2/nilai tengah)
 75th percentile (Q3)
 Maksimum

Informasi ini berguna untuk memahami distribusi data dan mengetahui apakah ada
outlier pada data. Hal ini penting dilakukan sebelum melakukan proses selanjutnya
seperti pembuatan model atau visualisasi data.

6.

Kode di atas menggunakan fungsi pairplot() dari library seaborn untuk membuat
scatter plot dari setiap pasangan kolom pada dataframe df. Fungsi ini digunakan untuk
mengeplot setiap pasangan kolom pada dataframe dan menandai setiap titik dengan
warna yang berbeda sesuai dengan nilai dari kolom yang ditentukan dalam parameter
hue (dalam kode di atas, kolom yang digunakan adalah kolom 'Class').

Ini berguna untuk memvisualisasikan hubungan antar kolom dan melihat bagaimana
data tersebar dalam kolom-kolom tersebut. Hal ini berguna untuk memahami
distribusi data dan mengetahui apakah ada pola tertentu yang muncul dari data.
7.

Kode di atas digunakan untuk memisahkan data dari dataframe df menjadi atribut (X)
dan label (y) yang akan digunakan dalam proses pembuatan model.

Baris pertama menggunakan fungsi iloc dari library pandas untuk mengambil nilai
dari semua baris pada semua kolom kecuali kolom terakhir dengan menggunakan
indexing [:, :-1]. Nilai yang diambil disimpan dalam variabel X.

Baris kedua mengambil nilai dari semua baris pada kolom terakhir dengan
menggunakan indexing [:, 4]. Nilai yang diambil disimpan dalam variabel y.

Pada baris ketiga dan keempat, print(X) dan print(y) digunakan untuk mengecek isi
dari variabel X dan y.

Secara umum, code diatas digunakan untuk memisahkan atribut dan label dari data
sebelum digunakan dalam proses pembuatan model machine learning. Atribut
digunakan sebagai input model, sedangkan label digunakan sebagai output yang
diharapkan dari model.

8.

Kode di atas digunakan untuk melakukan proses pembagian data menjadi data latih
dan data uji serta proses preprocessing data sebelum digunakan dalam proses
pembuatan model KNN.

Pada baris pertama, fungsi train_test_split dari library sklearn digunakan untuk
membagi data X dan y menjadi data latih (X_train, y_train) dan data uji (X_test,
y_test) dengan proporsi 20% data digunakan sebagai data uji dan 80% digunakan
sebagai data latih. Fungsi ini juga memiliki beberapa parameter seperti shuffle = True
untuk mengacak data sebelum dibagi, stratify = y untuk menjaga proporsi kelas yang
sama dalam data latih dan data uji, dan random_state = 42 untuk menentukan seed
acak yang digunakan dalam proses pembagian data.
Baris kedua menggunakan LabelEncoder dari library sklearn untuk mengubah label
yang berupa string menjadi integer. Kemudian di baris ketiga dan keempat,
LabelEncoder di aplikasikan pada data latih dan data uji dengan menggunakan fungsi
transform.

Pada baris kelima, fungsi transform dari objek scaler yang sudah di-fit dengan data
latih sebelumnya digunakan untuk menstandarisasi data latih (X_train) . Fungsi
transform juga digunakan untuk menstandarisasi data uji (X_test) .

Proses standarisasi data ini dilakukan agar data memiliki mean = 0 dan standard
deviation = 1. Ini berguna agar data tidak terdistorsi oleh perbedaan skala yang
mungkin ada pada setiap atribut.

9.

Kode di atas digunakan untuk menentukan nilai K yang optimal untuk model KNN
(K-Nearest Neighbors).

Pada baris pertama, variabel 'error' didefinisikan sebagai array kosong yang akan
digunakan untuk menyimpan nilai error dari setiap nilai K yang dicoba. Baris kedua
menentukan rentang nilai K yang akan dicoba yaitu dari 1 sampai 40.

Pada baris ketiga hingga enam, perulangan dilakukan untuk setiap nilai K yang
ditentukan sebelumnya. Pada setiap iterasi, objek KNeighborsClassifier dari library
sklearn dibuat dengan nilai K yang berbeda. Kemudian objek tersebut di-fit dengan
data latih (X_train dan y_train).

Pada baris tujuh, model KNN digunakan untuk melakukan prediksi pada data uji
(X_test) dengan menggunakan fungsi predict. Kemudian, pada baris delapan, nilai
error ditentukan dengan menghitung rata-rata dari perbedaan antara prediksi yang
dibuat dengan nilai yang sebenarnya (y_test) dan menambahkan nilai tersebut ke
dalam array 'error'.
Pada baris ke-10 hingga 14, grafik dibuat untuk menampilkan perbandingan antara
rata-rata error dan nilai K yang digunakan. Dari grafik ini, dapat ditentukan nilai K
yang paling optimal yaitu dengan nilai error yang paling kecil.

10.

Kode di atas digunakan untuk membuat objek KNN (K-Nearest Neighbors) dan
melatihnya dengan data latih (X_train dan y_train).

Pada baris pertama, objek classifier dari kelas KNeighborsClassifier dibuat dengan
nilai K yang sudah ditentukan sebelumnya yaitu 7. Kemudian pada baris kedua, objek
tersebut di-fit dengan data latih (X_train dan y_train) menggunakan fungsi fit.

Setelah melalui proses ini, model KNN sudah siap digunakan untuk melakukan
prediksi pada data baru menggunakan fungsi predict.

11.

Kode di atas digunakan untuk mengevaluasi performa model KNN yang telah dibuat
dan dilatih sebelumnya.

Pada baris pertama, model KNN digunakan untuk melakukan prediksi pada data uji
(X_test) dengan menggunakan fungsi predict dan hasil prediksi disimpan dalam
variabel 'y_pred'.

Pada baris kedua, fungsi classification_report dari library sklearn digunakan untuk
mengevaluasi performa model dengan membandingkan hasil prediksi ('y_pred')
dengan nilai sebenarnya ('y_test'). Fungsi ini mengembalikan sebuah laporan yang
berisi informasi seperti:

 Precision (akurasi dari prediksi positif)


 Recall (akurasi dari prediksi negatif)
 F1-score (rata-rata harmonic dari precision dan recall)
 Support (jumlah data pada setiap kelas)
12.

Kode di atas digunakan untuk menampilkan confusion matrix dari hasil prediksi
model KNN.

Pada baris pertama, fungsi confusion_matrix dari library sklearn digunakan untuk
menghitung matrix konfusi dari hasil prediksi ('y_pred') dan nilai sebenarnya
('y_test'). Matrix konfusi ini menunjukkan jumlah prediksi yang benar dan salah untuk
setiap kelas.

Pada baris kedua, objek ConfusionMatrixDisplay dari library sklearn digunakan untuk
menampilkan matrix konfusi yang dihitung sebelumnya. Parameter display_labels
digunakan untuk menentukan nama kelas yang akan ditampilkan dalam matrix
konfusi. Dalam kode di atas, parameter tersebut diisi dengan lb.classes_ yang
merupakan nama kelas yang telah ditentukan sebelumnya.

Melalui ConfusionMatrix, dapat dilihat jumlah prediksi yang benar dan salah dari
setiap kelas. Ini sangat berguna untuk mengevaluasi performa model dan menentukan
area yang perlu diperbaiki.

Anda mungkin juga menyukai