前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >K-近邻算法(KNN)实战

K-近邻算法(KNN)实战

作者头像
会呼吸的Coder
发布2020-02-17 17:48:01
8840
发布2020-02-17 17:48:01
举报
文章被收录于专栏:会呼吸的Coder

1.什么是knn算法

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

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

2.knn算法的优缺点:

  • 优点:精度高、对异常值不敏感、无数据输入假定。
  • 缺点:时间复杂度高、空间复杂度高。
  • 适用数据范围:数值型和标称型。

3.利用knn解决分类问题

1,导包

代码语言:javascript
复制
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自带的鸢尾花数据集

代码语言:javascript
复制
iris_data =datasets.load_iris()

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

代码语言:javascript
复制
data =iris_data.data
label=iris_data.target

4.查看特征名称

代码语言:javascript
复制
iris_data.feature_names

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

5.拆分训练集和测试集

代码语言:javascript
复制
#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.实例化算法并开始训练数据

代码语言:javascript
复制
#声明算法
knn = KNeighborsClassifier()
#训练数据
knn.fit(X_train,y_train)

7.查看准确率

代码语言:javascript
复制
knn.score(x_test,y_test)

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

代码语言:javascript
复制
#进行测试,只将数据交给model进行预测
y_ = knn.predict(x_test)
y_

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

9.展示数据

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

使用三点图展示数据

代码语言:javascript
复制
plt.scatter(X_train[:,0],X_train[0:,1],c=y_train,cmap="rainbow")
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 初级程序员 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.什么是knn算法
  • 2.knn算法的优缺点:
  • 3.利用knn解决分类问题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档