温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何使用KNN近邻算法

发布时间:2021-12-01 17:20:55 来源:亿速云 阅读:151 作者:柒染 栏目:大数据

本篇文章为大家展示了如何使用KNN近邻算法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

1.什么是knn算法

百度百科介绍的已经很详细,在此只作简单介绍。

存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据 与所属分类的对应关系。输人没有标签的新数据后,将新数据的每个特征与样本集中数据对应的 特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。一般来说,我们 只选择样本数据集中前K个最相似的数据,这就是K-近邻算法中K的出处,通常K是不大于20的整数。 最后 ,选择K个最相似数据中出现次数最多的分类,作为新数据的分类

2.knn算法的优缺点:

  • 优点:精度高、对异常值不敏感、无数据输入假定。

  • 缺点:时间复杂度高、空间复杂度高。

  • 适用数据范围:数值型和标称型。

3.利用knn解决分类问题

1,导包

from sklearn.neighbors import KNeighborsClassifier
import numpy as np
import sklearn.datasets as datasets#该数据集中,有好多的数据  是关于数据分析的一些数据
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
%matplotlib inline

2.导入sklearn自带的鸢尾花数据集

iris_data =datasets.load_iris()

3.获取数据集的特征和标签

data =iris_data.data
label=iris_data.target

4.查看特征名称

iris_data.feature_names

由此发现该数据集有,['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']四个特征,一一对应其data中的每一列数据

5.拆分训练集和测试集

#data 一分为二,训练数据X_train,x_test;
#target  一分为二  y_train,y_test
#y_train  目标值,y_test (保留的真实值)
X_train,x_test,y_train,y_test = train_test_split(data,target,test_size=0.1)

6.实例化算法并开始训练数据

#声明算法
knn = KNeighborsClassifier()
#训练数据
knn.fit(X_train,y_train)

7.查看准确率

knn.score(x_test,y_test)

8.进行测试,并将预测结果与真实结果对比

#进行测试,只将数据交给model进行预测
y_ = knn.predict(x_test)
y_

y_是预测结果,y_test是真实标签,对比即可

9.展示数据

#获取训练样本
#对原始数据进行处理,获取花萼的长度和宽度
#绘制展示这些花
X_train =  data[:,:2]
y_train = ta

使用三点图展示数据

plt.scatter(X_train[:,0],X_train[0:,1],c=y_train,cmap="rainbow")
如何使用KNN近邻算法

上述内容就是如何使用KNN近邻算法,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

knn
AI