使用KNN实现对鸢尾花数据集或者自定义数据集的的预测

创建自定义数据集:

point1=[[7.7,6.1],[3.1,5.9],[8.6,8.8],[9.5,7.3],[3.9,7.4],[5.0,5.3],[1.0,7.3]]
point2=[[0.2,2.2],[4.5,4.1],[0.5,1.1],[2.7,3.0],[4.7,0.2],[2.9,3.3],[7.3,7.9]]
point3=[[9.2,0.7],[9.2,2.1],[7.3,4.5],[8.9,2.9],[9.5,3.7],[7.7,3.7],[9.4,2.4]]
point_concat = np.concatenate((point1, point2, point3), axis=0)
point_concat_label = np.concatenate((np.zeros(len(point1)), np.ones(len(point2)), np.ones(len(point2)) + 1), axis=0)
print(point_concat_label)

并对以上数据集进行预测

完整代码:

from sklearn.neighbors import KNeighborsClassifier
import numpy as np
import matplotlib.pyplot as pltpoint1=[[7.7,6.1],[3.1,5.9],[8.6,8.8],[9.5,7.3],[3.9,7.4],[5.0,5.3],[1.0,7.3]]
point2=[[0.2,2.2],[4.5,4.1],[0.5,1.1],[2.7,3.0],[4.7,0.2],[2.9,3.3],[7.3,7.9]]
point3=[[9.2,0.7],[9.2,2.1],[7.3,4.5],[8.9,2.9],[9.5,3.7],[7.7,3.7],[9.4,2.4]]
point_concat = np.concatenate((point1, point2, point3), axis=0)
point_concat_label = np.concatenate((np.zeros(len(point1)), np.ones(len(point2)), np.ones(len(point2)) + 1), axis=0)
print(point_concat_label)n_neighbors = 3
knn = KNeighborsClassifier(n_neighbors=n_neighbors, algorithm='kd_tree', p=2)knn.fit(point_concat, point_concat_label)x1 = np.linspace(0, 10, 100)
y1 = np.linspace(0, 10, 100)
x_axis, y_axis = np.meshgrid(x1, y1)
print('s')xy_axis=np.c_[x_axis.ravel(),y_axis.ravel()]
knn_predict_result=knn.predict(xy_axis)fig=plt.figure(figsize=(5,5))
ax=fig.add_subplot(111)
ax.contour(x_axis,y_axis,knn.predict(xy_axis).reshape(x_axis.shape))ax.scatter(point_concat[point_concat_label == 0, 0], point_concat[point_concat_label == 0, 1],color='r', marker='^')
ax.scatter(point_concat[point_concat_label == 1, 0], point_concat[point_concat_label == 1, 1],color='g', marker='*')
ax.scatter(point_concat[point_concat_label == 2, 0], point_concat[point_concat_label == 2, 1],color='b', marker='s')
plt.show()

输出结果: 

对鸢尾花数据集:

完整代码:

from sklearn.datasets import load_iris
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler,MinMaxScaler
from sklearn.neighbors import KNeighborsClassifieriris = load_iris()
iris_data1 = pd.DataFrame(data=iris['data'], columns = ['Sepal_Length', 'Sepal_Width', 'Petal_Length', 'Petal_Width'])
print('')
iris_data1['target']=iris['target']
def plot_iris(data,col1,col2):sns.lmplot(x=col1,y=col2,data=data,hue='target',fit_reg=False)plt.title('data show')plt.xlabel(col1)plt.ylabel(col2)plt.show()plot_iris(iris_data1,'Sepal_Length','Petal_Width')
x_train,x_test,y_train,y_test=train_test_split(iris['data'],iris['target'],test_size=0.3,random_state=42)
print("训练集的特征值是 : \n", x_train)
print("测试集的特征值是 : \n", x_test)
print("训练集的目标值是 : \n", y_train)
print("测试集的目标值是 : \n", y_test)print("训练集的特征值形状 : \n", x_train.shape)
print("测试集的特征值形状 : \n", x_test.shape)
print("训练集的目标值形状 : \n", y_train.shape)
print("测试集的目标值形状 : \n", y_test.shape)transfer=MinMaxScaler(feature_range=(0,1))transfer1=StandardScaler()
ret_train_data=transfer1.fit_transform(x_train)
ret_test_data=transfer1.fit_transform(x_test)n_neighbors = 5
knn = KNeighborsClassifier(n_neighbors=n_neighbors)
knn.fit(ret_train_data, y_train)y_pre=knn.predict(ret_test_data)
print('预测值是\n',y_pre)
print("预测值和真实值的对比是:\n",y_pre==y_test)
score=knn.score(ret_test_data,y_test)
print(f'准确率是:{score}')

结果:

训练集的特征值是 : [[5.5 2.4 3.7 1. ][6.3 2.8 5.1 1.5][6.4 3.1 5.5 1.8][6.6 3.  4.4 1.4][7.2 3.6 6.1 2.5][5.7 2.9 4.2 1.3][7.6 3.  6.6 2.1][5.6 3.  4.5 1.5][5.1 3.5 1.4 0.2][7.7 2.8 6.7 2. ][5.8 2.7 4.1 1. ][5.2 3.4 1.4 0.2][5.  3.5 1.3 0.3][5.1 3.8 1.9 0.4][5.  2.  3.5 1. ][6.3 2.7 4.9 1.8][4.8 3.4 1.9 0.2][5.  3.  1.6 0.2][5.1 3.3 1.7 0.5][5.6 2.7 4.2 1.3][5.1 3.4 1.5 0.2][5.7 3.  4.2 1.2][7.7 3.8 6.7 2.2][4.6 3.2 1.4 0.2][6.2 2.9 4.3 1.3][5.7 2.5 5.  2. ][5.5 4.2 1.4 0.2][6.  3.  4.8 1.8][5.8 2.7 5.1 1.9][6.  2.2 4.  1. ][5.4 3.  4.5 1.5][6.2 3.4 5.4 2.3][5.5 2.3 4.  1.3][5.4 3.9 1.7 0.4][5.  2.3 3.3 1. ][6.4 2.7 5.3 1.9][5.  3.3 1.4 0.2][5.  3.2 1.2 0.2][5.5 2.4 3.8 1.1][6.7 3.  5.  1.7][4.9 3.1 1.5 0.2][5.8 2.8 5.1 2.4][5.  3.4 1.5 0.2][5.  3.5 1.6 0.6][5.9 3.2 4.8 1.8][5.1 2.5 3.  1.1][6.9 3.2 5.7 2.3][6.  2.7 5.1 1.6][6.1 2.6 5.6 1.4][7.7 3.  6.1 2.3][5.5 2.5 4.  1.3][4.4 2.9 1.4 0.2][4.3 3.  1.1 0.1][6.  2.2 5.  1.5][7.2 3.2 6.  1.8][4.6 3.1 1.5 0.2][5.1 3.5 1.4 0.3][4.4 3.  1.3 0.2][6.3 2.5 4.9 1.5][6.3 3.4 5.6 2.4][4.6 3.4 1.4 0.3][6.8 3.  5.5 2.1][6.3 3.3 6.  2.5][4.7 3.2 1.3 0.2][6.1 2.9 4.7 1.4][6.5 2.8 4.6 1.5][6.2 2.8 4.8 1.8][7.  3.2 4.7 1.4][6.4 3.2 5.3 2.3][5.1 3.8 1.6 0.2][6.9 3.1 5.4 2.1][5.9 3.  4.2 1.5][6.5 3.  5.2 2. ][5.7 2.6 3.5 1. ][5.2 2.7 3.9 1.4][6.1 3.  4.6 1.4][4.5 2.3 1.3 0.3][6.6 2.9 4.6 1.3][5.5 2.6 4.4 1.2][5.3 3.7 1.5 0.2][5.6 3.  4.1 1.3][7.3 2.9 6.3 1.8][6.7 3.3 5.7 2.1][5.1 3.7 1.5 0.4][4.9 2.4 3.3 1. ][6.7 3.3 5.7 2.5][7.2 3.  5.8 1.6][4.9 3.6 1.4 0.1][6.7 3.1 5.6 2.4][4.9 3.  1.4 0.2][6.9 3.1 4.9 1.5][7.4 2.8 6.1 1.9][6.3 2.9 5.6 1.8][5.7 2.8 4.1 1.3][6.5 3.  5.5 1.8][6.3 2.3 4.4 1.3][6.4 2.9 4.3 1.3][5.6 2.8 4.9 2. ][5.9 3.  5.1 1.8][5.4 3.4 1.7 0.2][6.1 2.8 4.  1.3][4.9 2.5 4.5 1.7][5.8 4.  1.2 0.2][5.8 2.6 4.  1.2][7.1 3.  5.9 2.1]]
测试集的特征值是 : [[6.1 2.8 4.7 1.2][5.7 3.8 1.7 0.3][7.7 2.6 6.9 2.3][6.  2.9 4.5 1.5][6.8 2.8 4.8 1.4][5.4 3.4 1.5 0.4][5.6 2.9 3.6 1.3][6.9 3.1 5.1 2.3][6.2 2.2 4.5 1.5][5.8 2.7 3.9 1.2][6.5 3.2 5.1 2. ][4.8 3.  1.4 0.1][5.5 3.5 1.3 0.2][4.9 3.1 1.5 0.1][5.1 3.8 1.5 0.3][6.3 3.3 4.7 1.6][6.5 3.  5.8 2.2][5.6 2.5 3.9 1.1][5.7 2.8 4.5 1.3][6.4 2.8 5.6 2.2][4.7 3.2 1.6 0.2][6.1 3.  4.9 1.8][5.  3.4 1.6 0.4][6.4 2.8 5.6 2.1][7.9 3.8 6.4 2. ][6.7 3.  5.2 2.3][6.7 2.5 5.8 1.8][6.8 3.2 5.9 2.3][4.8 3.  1.4 0.3][4.8 3.1 1.6 0.2][4.6 3.6 1.  0.2][5.7 4.4 1.5 0.4][6.7 3.1 4.4 1.4][4.8 3.4 1.6 0.2][4.4 3.2 1.3 0.2][6.3 2.5 5.  1.9][6.4 3.2 4.5 1.5][5.2 3.5 1.5 0.2][5.  3.6 1.4 0.2][5.2 4.1 1.5 0.1][5.8 2.7 5.1 1.9][6.  3.4 4.5 1.6][6.7 3.1 4.7 1.5][5.4 3.9 1.3 0.4][5.4 3.7 1.5 0.2]]
训练集的目标值是 : [1 2 2 1 2 1 2 1 0 2 1 0 0 0 1 2 0 0 0 1 0 1 2 0 1 2 0 2 2 1 1 2 1 0 1 2 00 1 1 0 2 0 0 1 1 2 1 2 2 1 0 0 2 2 0 0 0 1 2 0 2 2 0 1 1 2 1 2 0 2 1 2 11 1 0 1 1 0 1 2 2 0 1 2 2 0 2 0 1 2 2 1 2 1 1 2 2 0 1 2 0 1 2]
测试集的目标值是 : [1 0 2 1 1 0 1 2 1 1 2 0 0 0 0 1 2 1 1 2 0 2 0 2 2 2 2 2 0 0 0 0 1 0 0 2 10 0 0 2 1 1 0 0]
训练集的特征值形状 : (105, 4)
测试集的特征值形状 : (45, 4)
训练集的目标值形状 : (105,)
测试集的目标值形状 : (45,)
预测值是[1 0 2 2 2 0 1 2 1 1 2 0 0 0 0 2 2 1 1 2 0 2 0 2 2 2 2 2 0 0 0 0 1 0 0 2 10 0 0 2 1 1 0 0]
预测值和真实值的对比是:[ True  True  True False False  True  True  True  True  True  True  TrueTrue  True  True False  True  True  True  True  True  True  True  TrueTrue  True  True  True  True  True  True  True  True  True  True  TrueTrue  True  True  True  True  True  True  True  True]
准确率是:0.9333333333333333

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/6342.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Go学习:常量

变量:程序运行期间,可以改变的量,变量声明需要使用 var 常量:程序运行期间,不可以改变的量,常量声明需要使用 const 目录 1. 常量不允许修改 2. 常量赋值不使用 : 3. 常量能够自动推导类型 1. 常量不允许…

钉钉群机器人设置——python版本

钉钉群机器人设置——python版本 应用场景钉钉界面操作程序开发效果展示 应用场景 由于工作需要,很多项目执行程序后出现报错信息无法第一时间收到,因此实时预警对于监控程序还是有必要。(仅个人观点) 参考文档及博客&#xff1a…

Effective Python系列(1.1):区别bytes和str

本篇文章是 Effective Python 这本书的第一章,本章的主要内容是什么样的代码风格才是比较符合 Python 语言。 在 Python 当中,bytes 和 str 是两种不同的数据结构。使用时,需要注意两者区别: bytes 包含的是由 8 位值所组成的序列…

vue + element-ui 组件样式缺失导致没有效果

失效 代码: 修改方法: 在main.js文件里面加上: import element-ui/lib/theme-chalk/index.css; 最后:

Formality:不可读(unread)的概念

相关阅读 Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482https://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482 在Formality中有时会遇到不可读(unread)这个概念,本文就将对此…

机器学习 vs 深度学习

目录 一、机器学习 1、实现原理 2、实施方法 二、深度学习 1、与机器学习的联系与区别 2、神经网络的历史发展 3、神经网络的基本概念 一、机器学习 1、实现原理 训练(归纳)和预测(演绎) 归纳: 从具体案例中抽象一般规律…

OpenCV:高通滤波之索贝尔、沙尔和拉普拉斯

目录 简述 什么是高通滤波? 高通滤波的概念 应用场景 索贝尔算子 算子公式 实现代码 特点 沙尔算子 算子公式 实现代码 特点 拉普拉斯算子 算子公式 实现代码 特点 高通滤波器的对比与应用场景 相关阅读 OpenCV:图像滤波、卷积与卷积核…

豆包MarsCode 蛇年编程大作战 | 高效开发“蛇年运势预测系统”

🌟 嗨,我是LucianaiB! 🌍 总有人间一两风,填我十万八千梦。 🚀 路漫漫其修远兮,吾将上下而求索。 豆包MarsCode 蛇年编程大作战 | 🐍 蛇年运势预测 在线体验地址:蛇年…

开源鸿蒙开发者社区记录

lava鸿蒙社区可提问 Laval社区 开源鸿蒙项目 OpenHarmony 开源鸿蒙开发者论坛 OpenHarmony 开源鸿蒙开发者论坛

关于CAN(FD)转以太网详细介绍

一、功能描述 CANFD 完全向下兼容 CAN ,以下统称 CAN(FD) 。 SG-CAN(FD)NET-210 是一款用来把 CANFD 总线数据转为网口数据的设备。 网口支持 TCP Sever 、 TCP Client 、 UDP Sever 、 UDP Client 四种模式。 可以通过软件配置和 Web 网页配置。 两路…

简洁实用的wordpress外贸模板

简洁、实用、大气的wordpress外贸模板,适合跨境电商搭建外贸B2B产品展示型网站。 简洁实用的wordpress外贸模板 - 简站WordPress主题简洁、实用、大气的wordpress外贸模板,适合跨境电商搭建外贸B2B产品展示型网站。https://www.jianzhanpress.com/?p828…

编程界“华山论剑”:PHP与Go,谁主沉浮?

在编程的广阔天地里,选择一门合适的编程语言就如同为一场冒险挑选趁手的武器,至关重要却又常常令人纠结。当我们面对 PHP 与 Go 这两种备受瞩目的编程语言时,这种纠结愈发明显:PHP,作为 Web 开发领域的老牌劲旅&#x…

QT6 + CMAKE编译OPENCV3.9

参考文档 [1] https://blog.csdn.net/rjkf_css/article/details/135676077 前提条件 配置好相关运行环境:QT6、OPENCV3.9的sources文件 OPENCV下载网页:https://opencv.org/releases/ QT6下载教程:https://blog.csdn.net/caoshangpa/article…

Python数据可视化(够用版):懂基础 + 专业的图表抛给Tableau等专业绘图工具

我先说说文章标题中的“够用版”啥意思,为什么这么写。 按照我个人观点,在使用Python进行数据分析时,我们有时候肯定要结合到图表去进行分析,去直观展现数据的规律和特定,那么我们肯定要做一些简单的可视化&#xff0…

终极的复杂,是简单

软件仿真拥有最佳的信号可见性和调试灵活性,能够高效捕获很多显而易见的常见错误,被大多数工程师熟练使用。 空间领域应用的一套数据处理系统(Data Handling System),采用抗辐FPGA作为主处理器,片上资源只包含10752个寄存器,软仿也是个挺花时间的事。 Few ms might take …

青少年CTF练习平台 贪吃蛇

题目 CtrlU快捷键查看页面源代码 源码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>贪吃蛇游戏</title><style>#gameCanvas {border: 1px solid black;}</style> </head>…

Linux进度条实现

Linux进度条实现 1.\r\n2.缓冲区3.缓冲区分类4.进度条实现 &#x1f31f;&#x1f31f;hello&#xff0c;各位读者大大们你们好呀&#x1f31f;&#x1f31f; &#x1f680;&#x1f680;系列专栏&#xff1a;【Linux的学习】 &#x1f4dd;&#x1f4dd;本篇内容&#xff1a;\…

服务器安装ESXI7.0系统及通过离线包方式升级到ESXI8.0

新到了一台物理服务器需要安装系统&#xff0c;项目不急用&#xff0c;先拿来做些实验。 本次实验目标&#xff1a; 1、在物理服务器上安装ESXI7.0系统&#xff1b; 2、通过离线包升级方式将ESXI7.0升级为ESXI8.0。 实验环境准备&#xff1a; 物理服务器1台&#xff0c;型号…

docker日志保留策略设置

docker日志保留策略设置 默认策略 默认情况下&#xff0c;docker使用json-file日志驱动&#xff0c;并且没有设置日志保留时间。 这意味着容器日志会一直保留在宿主机上&#xff0c;直到容器被删除或手动清理。如果不对日志进行限制&#xff0c;可能会导致磁盘空间被耗尽。 …

uniapp+Vue3(<script setup lang=“ts“>)模拟12306城市左右切换动画效果

效果图&#xff1a; 代码&#xff1a; <template><view class"container"><view class"left" :class"{ sliding: isSliding }" animationend"resetSliding">{{ placeA }}</view><view class"center…