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

本文介绍使用kNN算法对手写字母图片进行特征提取和分类识别。首先介绍了kNN算法及其相关Python模块,接着讲解如何对图片进行特征提取,最后实现kNN算法并分析识别效果及可能存在的问题。
摘要由CSDN通过智能技术生成

本文主要是用kNN算法对字母图片进行特征提取,分类识别。内容如下:

kNN算法及相关Python模块介绍

对字母图片进行特征提取

kNN算法实现

kNN算法分析

一、kNN算法介绍

K近邻(kNN,k-NearestNeighbor)分类算法是机器学习算法中最简单的方法之一。所谓K近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。我们将样本分为训练样本和测试样本。对一个测试样本 t  进行分类,kNN的做法是先计算样本 t  到所有训练样本的欧氏距离,然后从中找出k个距离最短的训练样本,用这k个训练样本中出现次数最多的类别表示样本 t 的类别。

欧式距离的计算公式:

假设每个样本有两个特征值,如 A :(a1,b1)B:(a2,b2) 则AB的欧式距离为

举个例子:根据下图前四位同学的成绩和等级,预测第五位小白同学的等级。

我们可以看出:语文和数学成绩是一个学生的特征,等级是一个学生的类别。

前四位同学是训练样本,第五位同学是测试样本。我们现在用kNN算法来预测第五位同学的等级,k取3。

按照上面欧式距离公式我们可以计算

d(5-1)=

= 7          d(5-2)=

= 30

d(5-3)=

= 6          d(5-4)=

= 19.2

因为 k 取 3,所以我们寻找3个距离最近的样本,即编号为3,1,4的同学,他们的等级分别是 B,B,A。 这三个样本的分类中,出现了2次B,一次A,B出现次数最多,所以5号同学的等级可能为B

常用Python模块

NumPy:NumPy是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表结构要高效的多。

PIL:Python Imaging Library,是Python平台事实上的图像处理标准库,功能非常强大&#

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值