功能

利用k-邻近算法,实现识别数字0到9

开发环境Mac

Python3.5(Anaconda)

PIL

numpy

数据集和项目源代码

数据集

下面是32*32的黑白图像

32* 32像素数据集

为了方便处理,提供了文本文件

文本数据

数据集分为训练集和测试集,其中训练集是已经分类好的数据,测试集是用来测试算法。

将数据转换为特征向量

从上图可知,拿到的是32*32的的矩阵,每一个点是一个像素值,将这1024(32

32)个数值,转换成(1,1024)的向量。

数据转换为特征向量

KNN分类器

kNN分类器

输入测试集,测试算法

测试算法

看看选择不同的k值,分类效果如何

取不同的k值

这里看错误的个数,绘制一个折线图

注意:执行时间比较长,去喝杯咖啡吧

这里取1-4,当然你也可以取更高的k值(速度慢)

实验结果证明,取k=3,效果比较好。

txt转换为png图像

为了更具真实性,同样写了txt转换为png的代码。

txt转png

图像转txt文件

image.png

总结

数据集如果稍大一点,执行时间会变得非常长

作者:姜康

链接:https://www.jianshu.com/p/a81ce10c4076

python识别手写数字knn_机器学习-kNN实现简单的手写数字识别系统相关推荐

  1. 机器学习 —— KNN算法简单入门

    机器学习 -- KNN算法简单入门 第1关:手动实现简单kNN算法 1 KNN算法简介 1.1 kNN 算法的算法流程 1.2 kNN 算法的优缺点 1.3 编程要求+参数解释 2. 代码实现 3. ...

  2. 用python做一个数据查询软件_Python实现功能简单的数据查询及可视化系统

    欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练.PDF电子文档.面试集锦.学习资料等. image.png 前言 数据时代,数据的多源集成 ...

  3. 使用kNN算法实现简单的手写文字识别

    0. 介绍 kNN,即k-Nearest Neighbor(k近邻算法), 简介可参考KNN的一些总结. 本文是<机器学习实战>一书第二章的例子, 主要利用kNN实现简单的手写文字识别. ...

  4. python识别手写文字_Python3实现简单可学习的手写体识别(实例讲解)

    1.前言 版本:Python3.6.1 + PyQt5 + SQL Server 2012 以前一直觉得,机器学习.手写体识别这种程序都是很高大上很难的,直到偶然看到了这个视频,听了老师讲的思路后,瞬 ...

  5. 单机 amp; 弱联网手游 防破解、金币改动 简单措施

    单机 & 弱联网手游 防破解.金币改动 简单措施 手游经常使用破解方法 对于一个弱联网或者单机游戏,能够从下面方面去破解: 1.找得到存档文件的,直接破解改动存档文件. 2.找不到存档文件,就 ...

  6. 课程设计(毕业设计)—基于机器学习KNN算法手写数字识别系统—计算机专业课程设计(毕业设计)

    机器学习KNN算法手写数字识别系统 下载本文手写数字识别系统完整的代码和课设报告的链接(或者可以联系博主koukou(壹壹23七2五六98),获取源码和报告):https://download.csd ...

  7. 经典实战案例:用机器学习 KNN 算法实现手写数字识别 | 原力计划

    作者 | 奶糖猫 来源 | CSDN 博客,责编 | 夕颜 头图 | CSDN 下载自视觉中国 出品 | CSDN(ID:CSDNnews) 算法简介 手写数字识别是KNN算法一个特别经典的实例,其数 ...

  8. python手写字母识别_机器学习--kNN算法识别手写字母

    本文主要是用kNN算法对字母图片进行特征提取,分类识别.内容如下: kNN算法及相关Python模块介绍 对字母图片进行特征提取 kNN算法实现 kNN算法分析 一.kNN算法介绍 K近邻(kNN,k ...

  9. 开根号的笔算算法图解_机器学习KNN算法之手写数字识别

    1.算法简介 手写数字识别是KNN算法一个特别经典的实例,其数据源获取方式有两种,一种是来自MNIST数据集,另一种是从UCI欧文大学机器学习存储库中下载,本文基于后者讲解该例. 基本思想就是利用KN ...

最新文章

  1. 把数据保存到cook_将用户信息保存到Cookie中
  2. 请求成功得到返回数据还是走到catch_面试:SpringMVC在接收到请求后的调用细节是什么?...
  3. 20211205 Nussbaum函数实例
  4. VC用MFC开发的圆形进度条控件
  5. LeetCode 32. Longest Valid Parentheses
  6. Tuxera NTFS教程:在Mac上如何将MS-DOS文件系统格式化为NTFS文件系统?
  7. 详解spring框架入门到精通
  8. 计算机系统-实模式/保护模式/虚拟86模式
  9. python截图工具
  10. 清代考生是如何作弊?很是牛啊!
  11. 如何使用代理服务器上网,从基础到高手--转
  12. 插件化Amigo-1
  13. hdu 1873 看病要排队
  14. P2757 [国家集训队]等差子序列
  15. Unity中的宏定义
  16. 根据离散点画直线_excel表格怎么画散点图画直线
  17. pandas数据排序sort_values后面inplace=True与inplace=False的实例驱动理解
  18. python文件粉碎传输,BAT版文件粉碎器
  19. Java入门学习宝典大全
  20. 最火的iOS开源项目

热门文章

  1. 软件测试与应用期末复习
  2. 渗透测试--3.1.社会工程学攻击
  3. SideBar 可动态设置数据
  4. openssh升级流程
  5. Ubuntu16.04 独显驱动安装 Nvidia
  6. 【SQL Server】让你的数据来去自如——批处理
  7. SQL SERVER2000免安装版 下载
  8. html登录号如何显示用户名,HTML更改登录标签,登录后用户名
  9. Linux锁定账号,禁止登录系统设置
  10. 区块链是什么 通俗点