本篇文章为大家展示了如何使用KNN近邻算法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
百度百科介绍的已经很详细,在此只作简单介绍。
存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据 与所属分类的对应关系。输人没有标签的新数据后,将新数据的每个特征与样本集中数据对应的 特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。一般来说,我们 只选择样本数据集中前K个最相似的数据,这就是K-近邻算法中K的出处,通常K是不大于20的整数。 最后 ,选择K个最相似数据中出现次数最多的分类,作为新数据的分类。
优点:精度高、对异常值不敏感、无数据输入假定。
缺点:时间复杂度高、空间复杂度高。
适用数据范围:数值型和标称型。
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近邻算法,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。