import numpy as np
import matplotlib.pylab as pyb
%matplotlib inline
from sklearn.neighbors import KNeighborsClassifier
from sklearn import datasets
d:\python3.6.8\lib\importlib\_bootstrap.py:219: RuntimeWarning: numpy.ufunc size changed, may indicate binary incompatibility. Expected 216, got 192
return f(*args, **kwds)
加载数据,数据降维(画图)
X,y = datasets.load_iris(True)
X.shape
(150, 4)
X = X[:,:2]
X.shape
(150, 2)
pyb.scatter(X[:,0],X[:,1],c = y)
<matplotlib.collections.PathCollection at 0x23c0b98be10>
KNN算法训练数据
knn = KNeighborsClassifier(n_neighbors=5)
knn.fit(X,y)
KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
metric_params=None, n_jobs=None, n_neighbors=5, p=2,
weights='uniform')
X.shape
(150, 2)
meshgrid提取测试数据(8000个测试样本)
x1 = np.linspace(4,8,100)
y1 = np.linspace(2,4.5,80)
X1,Y1 = np.meshgrid(x1,y1)
X_test = np.c_[X1.ravel(),Y1.ravel()]
X_test.shape
(8000, 2)
使用算法进行预测,可视化
%%time
y_ = knn.predict(X_test)
Wall time: 258 ms
from matplotlib.colors import ListedColormap
lc = ListedColormap(['#FFAAAA','#AAFFAA','#AAAAFF'])
lc2 = ListedColormap(['#FF0000','#00FF00','#0000FF'])
%%time
pyb.scatter(X_test[:,0],X_test[:,1],c = y_,cmap = lc)
pyb.scatter(X[:,0],X[:,1],c = y,cmap = lc2)
Wall time: 49.6 ms
%%time
pyb.contourf(X1,Y1,y_.reshape(80,100),cmap = lc)
pyb.scatter(X[:,0],X[:,1],c = y,cmap = lc2)
Wall time: 30.8 ms