sklearn代码3 4-KNN-iris分类

import numpy as np

import matplotlib.pylab as pyb
%matplotlib inline

from sklearn.neighbors import KNeighborsClassifier

from sklearn import datasets
X,y = datasets.load_iris(True)
# 4个属性 需要4维空间才可以 4维数据
# 150代表样本数量
X.shape
(150, 4)
# 降维,最简单的降维操作就是切片
X = X[:,:2]  #切片从2开始一直到最后
X.shape
(150, 2)
pyb.scatter(X[:,0],X[:,1],c = y)  # 横坐标0,纵坐标1 y会分配颜色

请添加图片描述

<matplotlib.collections.PathCollection at 0x156f7fc22b0>
knn = KNeighborsClassifier(n_neighbors=5)

# 使用150个样本点作为训练数据
knn.fit(X,y)
KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
           metric_params=None, n_jobs=1, n_neighbors=5, p=2,
           weights='uniform')
# 训练数据
X.shape
# 测试数据 shape(?,2)    
# 获取测试数据
# 横坐标宽度 4~8 纵坐标2~4.5
# 背景点 取出来 meshgrid
x1 = np.linspace(4,8,100)   # 横坐标4~8,取一百个间隔

y1 = np.linspace(2,4.5,80)

X1,Y1 = np.meshgrid(x1,y1)
# display(X1.shape,Y1.shape)

# X1 = X1.reshape(-1,1)  #-1代表8000样本,1代表横坐标长度
# X1.shape

# Y1 = Y1.reshape(-1,1)

# # X_test = np.concatenate([X1,Y1],axis = 1)
# # X_test.shape
# # 平铺 一维化
X_test = np.c_[X1.ravel(),Y1.ravel()]   #与上述方法都可以实现数据整合

X_test.shape
(8000, 2)
%time  y_ = knn.predict(X_test)  
Wall time: 11.9 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: 39.9 ms

请添加图片描述

%%time
# 轮廓线 等高线
pyb.contourf(X1,Y1,y_.reshape(80,100),cmap=lc)

pyb.scatter(X[:,0],X[:,1],c = y,cmap = lc2)
Wall time: 34.9 ms

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值