Supervised classification using scikit-learn KNN

Dr. Huidae Cho

1   Using the sample iris data

from sklearn import datasets
from sklearn.neighbors import KNeighborsClassifier
import matplotlib.pyplot as plt

iris_data = datasets.load_iris()

knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(iris_data.data, iris_data.target)

X = [[5, 1.2, 4.8, 2.1], [3.5, 2.1, 0.9, 4.5]]
print(X)

pred = knn.predict(X)
print(pred)

x = 0 # sepal length
y = 2 # petal length
plt.plot(iris_data.data[iris_data.target==0,x], iris_data.data[iris_data.target==0,y], 'o', color='red')
plt.plot(iris_data.data[iris_data.target==1,x], iris_data.data[iris_data.target==1,y], 'o', color='blue')
plt.plot(iris_data.data[iris_data.target==2,x], iris_data.data[iris_data.target==2,y], 'o', color='magenta')
plt.plot(X[0][x], X[0][y], 'x', color='black')
plt.plot(X[1][x], X[1][y], '^', color='black')
plt.xlabel('petal length (cm)')
plt.ylabel('petal width (cm)')

2   Using your own data

from sklearn.neighbors import KNeighborsClassifier

feats = [[19, 110], [20, 115], [17, 116], [18, 118]]
targets = [0, 0, 1, 1]

knn = KNeighborsClassifier(n_neighbors=2)

knn.fit(feats, targets)
X = [[15.5, 115.4]]
print(X)

pred = knn.predict(X)

print(pred)