使用KNN进行手写体识别和iris数据集分类

news2024/11/18 8:45:15

文章目录

  • 手写体识别
  • iris数据集分类

手写体识别

首先使用load_digits将数据加载,这里的数据集有1797个样本,前1384个训练数据而后面的413个样本作为测试集,每个数据集中的样本是8*8像素的图像和一个[0, 9]整数的标签。紧接着输出64个样本的图像,每个图像输出在matplotlib上,标题title为每个图像的标签

在这里插入图片描述

首先将数据标准化,然后使用KNeighborsClassifier来使用K近邻算法,接着进行训练,然后输出训练之后分类模型的性能的指标。

k = 7
clf = KNeighborsClassifier(n_neighbors=k, metric='minkowski')
clf.fit(x_train, y_train)  # 训练完毕
predictions = clf.predict(x_test)

当K=3时,分类模型的性能的结果如图
在这里插入图片描述

当K=4时,分类模型的性能的结果如图

在这里插入图片描述

当K=5时,分类模型的性能的结果如图

在这里插入图片描述

当K=6时,分类模型的性能的结果如图

在这里插入图片描述

结果显示当K=4时效果较好,性能指标相较K=3、5和6时相对较好


iris数据集分类

接着使用sklearn自带的iris数据集,使用datasets.load_iris()导入数据,数据集包含150个数据样本,分为3类,每类50个数据,每个数据包含4个属性。获得数据集之后将数据集分为训练集和测试集,这里我分的是30个测试集和120个训练集,然后训练数据,之后输出分类模型的性能指标。

# 加载数据集
iris = datasets.load_iris()
data_size = iris.data.shape[0]
index = [i for i in np.arange(data_size)]
random.shuffle(index)
iris.data = iris.data[index]
iris.target = iris.target[index]

首先将K设置为5,结果如下

在这里插入图片描述

K=4的时候结果为下图

在这里插入图片描述

K=6的时候结果为下图

在这里插入图片描述

K=7的时候结果为下图

在这里插入图片描述

所以将K设置为5时效果较好,性能指标相较K=3、4、6和7时相对较好


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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Egg从基础到进阶】二:安装本地Mysql

什么是数据库: 数据库是用于将数据持久化存储的一个容器,并且在这个容器处于云端,而不是像游览器的本地存储一样,数据只是针对你当前所在游览器。游览器的存储是一对一的。而线上数据库的存储是一对多的,或者是多对多的…

被欧美公司垄断近 20 年,中国工业软件的机会在哪里?

【CSDN 编者按】工业软件,又被称之为是现代工业体系的“大脑”。近年来,在政府、企业、从业者等各方的齐心协力之下,中国工业软件市场规模不断壮大,逐渐成为“制造大国”。然而,站在全球的角度来看,相较一些…

使用小程序制作一个飞机大战小游戏

此文主要基于微信小程序制作一个飞机大战小游戏,上手即用,操作简单。 一、创建小程序二、页面实现三、代码块一、创建小程序 访问微信公众平台,点击账号注册。 选择小程序,并在表单填写所需的各项信息进行注册。 在开发管理选择开…

rancher部署nginx服务

前言:目前主流的开发模式是前后端分离,前端也会单独打包进行部署,一般就是把前端打包好的文件放到nginx目录下,和nginx一起部署,最终通过nginx来访问。 通用的dockerfile文件,用来构建nginx镜像 FROM ngi…

如何从测试新手变成测试大牛

如何从测试新手变成测试大牛,作为一个刚入行的测试新手,如何让自己提升自身能力,变成一个无所不能的测试大牛,本文将从多个方面来告诉你努力的方向,希望能帮助到你。 一:扎实的测试理论知识 作为一个测试人&#xff0…

nvcc编译器之编译内幕(chapter 23)

目录 2. 编译阶段(步骤) 2.1 NVCC预定义宏 2.2 NVCC编译步骤 2.3 NVCC支持的文件后缀 2.4 支持的编译阶段 3. CUDA 编译内幕 2. 编译阶段(步骤) 2.1 NVCC预定义宏 __NVCC__ 在编译C/C/CUDA源文件时定义 __CUDACC__ 在编译…

[附源码]java毕业设计教师教学评价系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

java之你真正了解抽象类和接口嘛?

🎇🎇🎇作者: 小鱼不会骑车 🎆🎆🎆专栏: 《java练级之旅》 🎓🎓🎓个人简介: 一名专科大一在读的小比特,努力学习编程是我…

Nexus私服仓库Linux、Windows部署教程

Nexus 概述 Nexus 是 Sonatype 公司发布的一款仓库(Repository)管理软件,常用来搭建 Maven 私服,所以也有人将 Nexus 称为“Maven仓库管理器”。 主流的 Maven 仓库管理器主要有以下 3 种:Apache Archiva、JFrog Arti…

软考信息安全工程师案列分析

1.第一题 1.动态存储区,分配存储空间和释放存储空间 3.让argv[]中的第9个字符是十进制65即可。 4.缓冲区溢出漏洞,使用安全的strcpy函数,检测边界 第二题 第三题 1.保证M完整性 不能交换,先hash摘要可以减少加密的计算量。 2.实现…

STM8S系列基于STVD开发,自定义printf函数+TIM5精确延时函数模块化工程示例

STM8S系列基于STVD开发,自定义printf函数TIM5精确延时函数模块化工程示例🎬功能演示 ✨本例也是结合了网络上收集来的printf自定义内容,将其功能模块化,方便移植使用,灵活性很强。 📚相关篇内容《STM8S903…

leetcode:792. 匹配子序列的单词数【子序列二分优化模板 + 大的字符串不变的二分优化】

目录题目截图题目分析ac code总结题目截图 题目分析 简单的子序列判断需要on,那么最后最坏就是omn,25 * 10 ^ 7爆炸因此需要优化子序列判断注意到此时的大字符串是同一个记录每个字母出现的下标遍历word,找到下一个最近的字母出现的位置&…

C++【C++11】

文章目录一、统一的列表初始化1.用{}来初始化元素2.initializer_list二、自动类型推断3.auto4.decltype三、指针5.nullptr6.范围for四、STL中的一些新变化1.新增加的容器2.容器内部的变化一、统一的列表初始化 1.用{}来初始化元素 在C98中,标准允许使用花括号{}对…

搭建java部署环境以及部署Web项目到Linux

系列文章目录 Linux 环境搭建以及xshell远程连接_crazy_xieyi的博客-CSDN博客 Linux常用命令详解_crazy_xieyi的博客-CSDN博客 Linux权限_crazy_xieyi的博客-CSDN博客 文章目录 一、搭建java部署环境 1.yum 2.JDK 3.Maven 4.Tomcat 5.MySQL二、部署…

PacBio三代全长扩增子测序对珊瑚共生虫黄藻和细菌群落进行精确分类

研究背景 珊瑚与其共生微生物群落统称为珊瑚共生功能体,包含了光合甲藻以及与其保持长期互利共生关系的细菌、古菌、真菌、原生动物以及病毒等一系列微生物。这些与珊瑚相关的微生物在其宿主的适应性和生存中起着重要的作用。本研究利用PacBio全长16S rRNA和ITS测序…

【Spring】一文带你吃透Spring集成MyBatis

个人主页: 几分醉意的CSDN博客_传送门 文章目录💖Spring集成MyBatis✨怎么使用mybatis✨集成的步骤✨创建数据库表✨pom加入依赖✨创建MyBatis使用代码✨创建Service类✨创建Spring配置文件✨测试集成MyBatis✨使用外部属性配置文件💖投票传送…

HTML西安旅游网页设计作业成品 大学生旅游风景区网页设计作业模板下载 静态HTML旅游景点网页制作下载 DW网页设计代码

👨‍🎓学生HTML静态网页基础水平制作👩‍🎓,页面排版干净简洁。使用HTMLCSS页面布局设计,web大学生网页设计作业源码,这是一个不错的旅游网页制作,画面精明,排版整洁,内容…

Redis主从复制

安装redis 下载redis源码: wget http://download.redis.io/releases/redis-3.2.3.tar.gz 解压安装redis: tar zxf redis-3.2.3.tar.gz 解压完毕后开始安装,如下: cd redis-3.2.3/ make&&make install 然后再切换到utils目录下&…

【LeetCode每日一题:792.匹配子序列的单词数~~~时间超限的双指针+改进优化的存储元素位置的二分查找】

题目描述 给定字符串 s 和字符串数组 words, 返回 words[i] 中是s的子序列的单词个数 。 字符串的 子序列 是从原始字符串中生成的新字符串,可以从中删去一些字符(可以是none),而不改变其余字符的相对顺序。 例如, “ace” 是 “abcde” 的…

进程的通信 - 剪切板

剪切板是系统维护管理的一块内存区域,本机的所有进程都可以访问。当一个进程复制数据时,先将数据放在该内存区,当另一个进程粘贴时,则是从该内存区块取出数据 剪切板操作: 其实在剪切板中也就那几个API在使用&#x…