没有合适的资源?快使用搜索试试~ 我知道了~
基于KNN的数字识别系统代码大全.docx
需积分: 5 0 下载量 30 浏览量
2022-10-19
14:12:08
上传
评论
收藏 247KB DOCX 举报
温馨提示
试读
15页
基于KNN的数字识别系统代码大全.docx基于KNN的数字识别系统代码大全.docx基于KNN的数字识别系统代码大全.docx基于KNN的数字识别系统代码大全.docx
资源推荐
资源详情
资源评论
基于 KNN 的数字识别系统
1.1 题目的主要研究内容
(1)本文设计了一个数字识别系统,基于 KNN 算法用 Java 实现,本设计
用三种方式进行数字识别,分别是按文件名识别、按规模识别、测试全部文件。
实验结果表明该文所设计的手写数字识别具有较好的识别率,同时也说明 KNN 算
法在手写数字识别上具有良好的应用。
(2)系统流程图
1.2 题目研究的工作基础或实验条件
IDE:Eclipse
语言:java
1.3 数据集描述
有 study digits、training digits、test digits,其中测试集为 0-9 的 946 个二值
化 txt 文本。
1.4 特征提取描述
Java 添加了 java.util.Scanner 类,这是一个用于扫描输入文本的新的实用程
序,本设计的特征提取就是用 scanner 模块进行的。
Scanner 类是 java.util 包中的一个类,作用:常用于控制台的输入,当需要使
用控制台输入时即可调用这个类;Scanner 类的用法:1、首先需要构造一个
Scanner 类 的 对 象 , 并 且 与 标 准 输 入 流 System.in 关 联 Scanner sc=new
Scanner(System.in);2、调用 Scanner 类对象 sc 的方法从输入流中获取你需要的
输入。说明:当创建了一个 Scanner 类对象之后,控制台会一直等待输入,直到
敲回车键结束,把所输入的内容传给对象 sc,若要获取需要的内容,调用 sc 的
方法即可。
1.5 分类过程描述
用 KNN 算法进行分类,简言之就是数据和所有可能的结果进行欧氏距离比对,
就知道识别数据和所有可能的结果的距离,取距离最近的前 K 个(通常为奇
数),再在 K 个中取大众结果。
一、KNN 算法的基本介绍
本设计用到 KNN 算法进行分类,KNN 算法主要是在文本分类上有着极好的分
类效果,包括信息检索、机器翻译、自动文摘、信息过滤、邮件分类等任务。文
本分类在搜索引擎中也有这大量的使用,KNN 算法不仅可以用于分类,还可以用
于回归。通过找出一个样本的 K 个最近邻居,将这些邻居的属性的平均值赋给该
样本,就可以得到该样本的属性。更有用的方法是将不同距离的邻居对该样本产
生的影响给予不同的权值,如权值与距离成正比。还可以用 KNN 算法做现有用户
产品推荐,基于用户的最近邻买了什么产品来推荐。
二、KNN 算法的实现
KNN 算法的核心思想是如果一个样本在特征空间中的 K 个最近邻的样本中的
大多数属于某一个类别,则该样本也属 于这个类别,并具有这个类别上样本的
特性。KNN 方法在类别决策时,只与极少量的相邻样本有关。KNN 算法的原理如
图 1,圆要被决定赋予哪个类,是三角形还是四方形,如果 K=3,由于三角形所
占比例为 2/3,圆将被赋予三角形那个类,如果 K=5,由于四方形比例为 3/5,
因此圆被赋予四方形类。
图 1 KNN 算法原理图
该算法对未知类别属性的数据集中的每个点依次执行以下操作:
1) 计算已知类别数据集中的点与当前点之间的距离;
2) 按照距离递增次序排序;
3) 选取与当前点距离最小的 k 个点;
4) 确定前 k 个点所在类别的出现频率;
5) 返回前 k 个点出现频率最高的类别作为当前点的预测分类。
欧式距离计算:二维平面上两点 A(x1,y1)与 B(x2,y2)之间的欧式距离为:
D=(x1-x2)
2
+(y1-y2)
2
三 维 平 面 上 两 点 A(x1,y1,z1) 和 B(x2,y2,z2) 之 间 的 欧 氏 距 离 为 :
D=(x1-x2)
2
+(y1-y2)
2
+(z1-z2)
2
两个 N 维向量 A(x11,x12…x1n),B(x21,x22…x2n)间的欧氏距离为:
D
=
n
k
=
1
(
x
1k
−
x
2k
)
2
KNN 算法的优点是计算简单,在基于统计的模式识别中有效性及其突出,已
成为在模式识别、回归、文本分类和数据挖掘领域比较常见的一种分类方法,该
算法准确率高容易实现,使用简单易于操作,一些文献表明 KNN 算法分类效果好,
并且在训练过程中投入的时间最少。但 KNN 算法仍然存在不足,主要表现为对于
高维文本向量样本规模较大时,算法的时间和空间复杂度较高,当新待分类样本
到来时,每次都要计算其与所有训练样本的距离(或相似度),这就大大降低了算
法的效率。
1. 6 主要程序代码
剩余14页未读,继续阅读
资源评论
李逍遥敲代码
- 粉丝: 2999
- 资源: 277
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功