python KNN分类算法 使用鸢尾花数据集实战

简介: python KNN分类算法 使用鸢尾花数据集实战

KNN分类算法,又叫K近邻算法,它概念极其简单,但效果又很优秀。


如觉得有帮助请点赞关注收藏啦~~~


KNN算法的核心是,如果一个样本在特征空间中的K个最相似,即特征空间中最邻近的样本中的大多数属于某一个类别,则该样本也属于这个类别


1:K值


K值也就是选择几个相邻的作为测量


2:距离的度量


距离决定了哪些是邻居哪些不是,度量距离有很多种方法,常用的是欧式距离


1:查看数据 使用鸢尾花数据集 由sklearn模块导入

1666429787779.jpg

from sklearn.datasets import load_iris
from sklearn.model_selection import  train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn import  datasets
import matplotlib.pyplot as plt
import matplotlib; matplotlib.use('TkAgg')
import pandas as pd
print("数据集的keys",iris_dataset.keys())
print("特征名",iris_dataset['feature_names'])
print("数据类型",type(iris_dataset['data']))
print("数据维度",iris_dataset['data'].shape)
print("标记名",iris_dataset['target_names'])

2:使用散点矩阵查看数据特征关系

1666429816660.jpg

代码如下  绘图并且划分数据集与训练集

from sklearn.datasets import load_iris
from sklearn.model_selection import  train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn import  datasets
import matplotlib.pyplot as plt
import matplotlib; matplotlib.use('TkAgg')
import pandas as pd
iris_dataset=load_iris()
train_x,test_x,train_y,test_y=train_test_split(iris_dataset['data'],iris_dataset['target'],random_state=2)
print('trainx\n',train_x)
print('trainy\n',train_y)
print('testx\n',test_x)
print('testy\n',test_y)
print(test_x.shape)
print(test_x.shape)
irisdataframe=pd.DataFrame(train_x,columns=iris_dataset.feature_names)
pd.plotting.scatter_matrix(irisdataframe,c=train_y,figsize=(15,15),marker='o',hist_kwds={'bins':20},s=60,alpha=0.8)
plt.show()

3:建立KNN模型进行预测


python中实现KNN方法使用的是KNeighborsClassifier类


核心操作分三步


3.1:创建KNeighborsClassifier对象 并进行初始化


3.2:调用fit()方法 对数据集进行训练


fit(x,y)以x为训练集 y为测试及对模型进行训练


3.3:调用predict函数进行预测

1666429891862.jpg

源代码如下

from sklearn.datasets import load_iris
from sklearn.model_selection import  train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn import  datasets
import matplotlib.pyplot as plt
import matplotlib; matplotlib.use('TkAgg')
import pandas as pd
iris_dataset=load_iris()
iris=datasets.load_iris()
print("数据集结构",iris.data.shape)
iris_x=iris.data
iris_y=iris.target
iris_train_x,iris_test_x,iris_train_y,iris_test_y=train_test_split(iris_x,iris_y,test_size=0.2,random_state=0)
knn=KNeighborsClassifier()
knn.fit(iris_train_x,iris_train_y)
predictresult=knn.predict(iris_test_x)
print("测试集大小",iris_test_x.shape)
print("真实结果",iris_test_y)
print("预测结果",predictresult)
print("预测精确率",knn.score(iris_test_x,iris_test_y))


相关文章
|
1月前
|
算法 搜索推荐 JavaScript
基于python智能推荐算法的全屋定制系统
本研究聚焦基于智能推荐算法的全屋定制平台网站设计,旨在解决消费者在个性化定制中面临的选择难题。通过整合Django、Vue、Python与MySQL等技术,构建集家装设计、材料推荐、家具搭配于一体的一站式智能服务平台,提升用户体验与行业数字化水平。
|
2月前
|
存储 算法 调度
【复现】【遗传算法】考虑储能和可再生能源消纳责任制的售电公司购售电策略(Python代码实现)
【复现】【遗传算法】考虑储能和可再生能源消纳责任制的售电公司购售电策略(Python代码实现)
177 26
|
2月前
|
机器学习/深度学习 编解码 算法
【机器人路径规划】基于迪杰斯特拉算法(Dijkstra)的机器人路径规划(Python代码实现)
【机器人路径规划】基于迪杰斯特拉算法(Dijkstra)的机器人路径规划(Python代码实现)
311 4
|
2月前
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于D*算法的机器人路径规划(Python代码实现)
【机器人路径规划】基于D*算法的机器人路径规划(Python代码实现)
180 0
|
2月前
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于改进型A*算法的机器人路径规划(Python代码实现)
【机器人路径规划】基于改进型A*算法的机器人路径规划(Python代码实现)
214 0
|
机器学习/深度学习 算法 搜索推荐
从理论到实践,Python算法复杂度分析一站式教程,助你轻松驾驭大数据挑战!
【10月更文挑战第4天】在大数据时代,算法效率至关重要。本文从理论入手,介绍时间复杂度和空间复杂度两个核心概念,并通过冒泡排序和快速排序的Python实现详细分析其复杂度。冒泡排序的时间复杂度为O(n^2),空间复杂度为O(1);快速排序平均时间复杂度为O(n log n),空间复杂度为O(log n)。文章还介绍了算法选择、分而治之及空间换时间等优化策略,帮助你在大数据挑战中游刃有余。
378 3
|
机器学习/深度学习 算法 搜索推荐
从理论到实践,Python算法复杂度分析一站式教程,助你轻松驾驭大数据挑战!
【7月更文挑战第22天】在大数据领域,Python算法效率至关重要。本文深入解析时间与空间复杂度,用大O表示法衡量执行时间和存储需求。通过冒泡排序(O(n^2)时间,O(1)空间)与快速排序(平均O(n log n)时间,O(log n)空间)实例,展示Python代码实现与复杂度分析。策略包括算法适配、分治法应用及空间换取时间优化。掌握这些,可提升大数据处理能力,持续学习实践是关键。
321 1
|
存储 机器学习/深度学习 算法
Python算法基础教程
Python算法基础教程
114 0
|
数据采集 SQL 算法
C++、Python、数据结构与算法、计算机基础、数据库教程汇总!
C++、Python、数据结构与算法、计算机基础、数据库教程汇总!
312 0
C++、Python、数据结构与算法、计算机基础、数据库教程汇总!

推荐镜像

更多
下一篇
oss云网关配置