Kuasai Pemahaman Ini Dalam K-Nearest Neighbors

Artificial Intelligence For Learning The Basics

Plot by Kirill Eremenko & Hadelin de Ponteves on Udemy

Apa itu K-Nearest Neighbors?

K-Nearest Neighbors (K-NN) merupakan salah satu teknik dalam Machine Learning yang digunakan untuk memprediksi data kategorikal atau mengklasifikasi data baru berdasarkan kedekatannya dengan data di sekelilingnya atau tetangganya (K Neighbor) yang telah dibagi kedalam beberapa kelompok atau klasifikasi.

Cara Kerja Model K-Nearest Neighbors

  1. Tentukan berapa banyak K Neighbor atau data tetangga yang akan digunakan, misalnya kita mau tentukan K Neighbor nya adalah 5,
  2. Tentukan 5 data terdekat dari data observasi baru berdasarkan jarak Euclidean,
  3. Dari 5 data terdekat ini, hitung berapa banyak data yang termasuk ke dalam masing – masing kelompok atau klasifikasi,
  4. Hitung berapa banyak data yang termasuk kedalam masing – masing kelompok atau klasifikasi tersebut
  5. Data baru akan dimasukkan ke dalam kelompok yang mempunyai K Neigbor paling banyak dalam suatu kelompok atau klasifikasi.

Rumus Jarak Euclidean Dalam K-Nearest Neigbors

Plot by Kirill Eremenko & Hadelin de Ponteves on Udemy

Jarak Euclidean = sqrt((X2 – X1)^2 + (y2 – y1)^2)

Keterangan:
X2 = variabel independen dari K Neighbor
X1 = variabel independen dari data observasional baru
y2 = variabel dependen dari K Neighbor
y1 = variabel dependen dari data observasional baru

Rumus jarak Euclidean ini berguna untuk menghitung jarak antara data observasi baru dengan K Neighbor atau data observasi aslinya. Nilai jarak Euclidean yang kecil menandakan data observasi yang baru berdekatan dengan data aslinya dan ini lah yang disebut dengan K-Nearest Neighbors.

Kode Python Untuk Membuat Model K-Nearest Neighbors

  • Impor librari

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

  • Impor dataset

dataset = pd.read_csv(‘Social_Network_Ads.csv’)
X = dataset.iloc[:, :-1].values
y = dataset.iloc[:, -1].values

  • Membagi dataset menjadi training set dan test set

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 0)

  • Feature Scaling

from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)

  • Melatih model K-Nearest Neighbors kedalam training set

from sklearn.neighbors import KNeighborsClassifier
classifier = KNeighborsClassifier(n_neighbors = 5, metric = ‘minkowski’, p = 2)
classifier.fit(X_train, y_train)

  • Memprediksi hasil test set

y_pred = classifier.predict(X_test)
print(np.concatenate((y_pred.reshape(len(y_pred),1), y_test.reshape(len(y_test),1)),1))

  • Memprediksi data observasi baru

print(classifier.predict(sc.transform([[30,87000]])))

  • Membuat Confusion Matrix

from sklearn.metrics import confusion_matrix, accuracy_score
cm = confusion_matrix(y_test, y_pred)
print(cm)
accuracy_score(y_test, y_pred)

  • Visualisasi training set

from matplotlib.colors import ListedColormap
X_set, y_set = sc.inverse_transform(X_train), y_train
X1, X2 = np.meshgrid(np.arange(start = X_set[:, 0].min() – 10, stop = X_set[:, 0].max() + 10, step = 1),
np.arange(start = X_set[:, 1].min() – 1000, stop = X_set[:, 1].max() + 1000, step = 1))
plt.contourf(X1, X2, classifier.predict(sc.transform(np.array([X1.ravel(), X2.ravel()]).T)).reshape(X1.shape),
alpha = 0.75, cmap = ListedColormap((‘red’, ‘green’)))
plt.xlim(X1.min(), X1.max())
plt.ylim(X2.min(), X2.max())
for i, j in enumerate(np.unique(y_set)):
plt.scatter(X_set[y_set == j, 0], X_set[y_set == j, 1], c = ListedColormap((‘red’, ‘green’))(i), label = j)
plt.title(‘K-NN (Training set)’)
plt.xlabel(‘Age’)
plt.ylabel(‘Estimated Salary’)
plt.legend()
plt.show()

Plot by Kirill Eremenko & Hadelin de Ponteves on Udemy

  • Visualisasi test set

from matplotlib.colors import ListedColormap
X_set, y_set = sc.inverse_transform(X_test), y_test
X1, X2 = np.meshgrid(np.arange(start = X_set[:, 0].min() – 10, stop = X_set[:, 0].max() + 10, step = 1),
np.arange(start = X_set[:, 1].min() – 1000, stop = X_set[:, 1].max() + 1000, step = 1))
plt.contourf(X1, X2, classifier.predict(sc.transform(np.array([X1.ravel(), X2.ravel()]).T)).reshape(X1.shape),
alpha = 0.75, cmap = ListedColormap((‘red’, ‘green’)))
plt.xlim(X1.min(), X1.max())
plt.ylim(X2.min(), X2.max())
for i, j in enumerate(np.unique(y_set)):
plt.scatter(X_set[y_set == j, 0], X_set[y_set == j, 1], c = ListedColormap((‘red’, ‘green’))(i), label = j)
plt.title(‘K-NN (Test set)’)
plt.xlabel(‘Age’)
plt.ylabel(‘Estimated Salary’)
plt.legend()
plt.show()

Plot by Kirill Eremenko & Hadelin de Ponteves on Udemy

Dari pemaparan yang diatas, kita dapat mengetahui apa itu K-Nearest Neighbor, bagaimana cara kerjanya dan bagaimana cara membuat modelnya. Aplikasi dari K-Nearest Neighbors ini bisa digunakan untuk memprediksi pembelian suatu customer, memprediksi apakah nasabah bank bertahan atau tidak dan lain – lain.

Bagi anda yang ingin memberikan komentar pada website ini, silahkan tulis komentar Anda dengan mengisi nama dan alamat email Anda. Anda dapat membaca blog kami sebelumnya mengenai Logistic Regression dan blog kami selanjutnya mengenai Support Vector Machine.

0 0 votes
Article Rating
0 0 votes
Article Rating
guest
2 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments

[…] Bagi anda yang ingin memberikan komentar pada website ini, silahkan tulis komentar Anda dengan mengisi nama dan alamat email Anda. Anda dapat membaca blog kami sebelumnya mengenai 6 tips & tricks mengurangi COGS dan blog kami selanjutnya mengenai K-Nearest Neighbors. […]

[…] Anda dengan mengisi nama dan alamat email Anda. Anda dapat membaca blog kami sebelumnya mengenai K-Nearest Neighbor. Nantikan konten blog kami selanjutnya yang ga kalah […]

2
0
Would love your thoughts, please comment.x
()
x
Scroll to Top