K-近邻:鸢尾花(iris数据集)分类

击上方
“蓝色字”
可关注咱们!


今日分享:鸢尾花分类 KNN模型评价web


一:实例流程算法

一、获取数据:是否须要利用pandas读取数据微信

二、数据处理:选定特征值及目标值,若存在缺失值,则需进行处理机器学习

三、进行特征工程:若特征值为数值型数据,考虑是否进行标准化处理;若特征值中存在类别型的文本数据,需进行one-hot编码处理,实现途径,使用pandas转换成字典,进行特征抽取 ;若数据维度较高,考虑是否须要降维处理。学习

四、实例化估计器,训练,预测测试


二:数据集介绍编码

本次示例的数据集为sklearn中自带的数据集(机器学习中数据相关介绍  sklearn数据集介绍),数据文件已默认下载到本地中,使用时直接导入便可。顺便经过iris数据集来代码演示一下自带数据集的相关操做spa










三:代码演示.net


#导入相关库
from sklearn.neighbors import KNeighborsClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler


def knn_iris():
   '''K-近邻模型对鸢尾花进行分类'''
   
   #加载数据集
   iris = load_iris()
   
   #划分数据集
   #切记 x_train,x_test,y_train,y_test 顺序位置必定不能写错
   #括号中参数分别为 (特征值 目标值 测试集大小占比) 占比可自行设定 经常使用0.25
   x_train,x_test,y_train,y_test = train_test_split(iris.data,iris.target,test_size=0.25)
   
   '''特征工程(标准化)'''
   std = StandardScaler()
   
   #对测试集和训练集的特征值进行标准化
   x_train = std.fit_transform(x_train)

   x_test = std.transform(x_test)
   
   #Knn模型实例化
   knn = KNeighborsClassifier()
   
   #训练数据
   knn.fit(x_train,y_train)
   
   print('得出预测结果')
   y_predict = knn.predict(x_test)
   
   print(y_predict)
   
   print('得出预测准确率')
   print(knn.score(x_test,y_test))
   

   
if __name__ == '__main__':
   knn_iris()


输出结果3d

得出预测结果
[0 1 1 0 0 2 1 0 0 0 1 2 1 0 2 2 0 1 2 2 1 1 1 0 1 0 2 1 0 0 1 1 2 2 1 1 1
0
]
得出预测准确率
0.9736842105263158


因为该数据集是专门方便学习者用来学习练习分类算法的,所以其预测的准确率仍是很高的


二:KNN模型评价

KNN模型时比较简单易上手的一种分类模型,可是该模型也存在一些问题,好比说:

k值取多大为好呢?大小又有什么影响?k值取很小:容易受异常点影响;k值取很大:容易受最近数据太多致使比例变化


优缺点

优势:简单,易于理解,易于实现,无需估计参数,无需训练

缺点:懒惰算法,对测试样本分类时的计算量大,内存开销大必须指定K值,K值选择不当则分类精度不能保证




Python基础知识集锦

爬虫专题文章整理篇!!!

Python数据分析干货整理篇

Matplotlib数据可视化专题集锦贴



公众号     QQ群

扫QQ群二维码进交流学习群

或在后台回复:加群

本文分享自微信公众号 - 数据指南(BigDataDT)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索