python中的k n n算法实现

from sklearn import datasets
from sklearn.neighbors import KNeighborsClassifier
import numpy as np
np.random.seed(0)
#设置随机的种子,不设置的话默认是按照系统时间作为参数,设置后可以保证我们每次产生的随机数不一样
iris=datasets.load_iris()
#获取鸢尾花数据集
iris_x=iris.data   #数据部分
iris_y=iris.target   #类别部分
indices=np.random.permutation(len(iris_x))
#从150条数据中选140条作为训练集,10条作为测试集,permutation接收一个数作为参数(这里为数据集长度150),产生一个0-149乱序的一组数组
iris_x_train=iris_x[indices[:-10]]     #训练集数据
iris_y_train=iris_y[indices[:-10]]     #训练集标签
iris_x_test=iris_x[indices[-10:]]      #测试集数据
iris_y_test=iris_y[indices[-10:]]      #测试集标签
knn=KNeighborsClassifier()     #定义一个knn分类器对象
knn.fit(iris_x_train,iris_y_train)   #调用该对象的训练方法,主要接收两个参数:训练集数据及其类别标签
iris_y_predict=knn.predict(iris_x_test)    #调用预测方法,主要接收一个参数:测试数据集
probility=knn.predict_proba(iris_x_test)
#计算各测试样本预测的概率值,这里我们没有用概率值,但是在实际工作中可能会参考概率值来进行最后结果的筛选,而不是直接使用给出的预测标签
neighborpoint=knn.kneighbors([iris_x_test[-1]],5)
#计算最后一个测试样本距离最近的5个点,返回的是这些样本的序号组成的数组
score=knn.score(iris_x_test,iris_y_test,sample_weight=None)
#调用该对象的打分方法,计算出准确率
print('iris_y_predict')
print(iris_y_predict)
print('iris_y_test')
print(iris_y_test)
print('accuracy:',score)

结果输出:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值