手写数字识别的机器学习方法讨论

原创 2016年08月29日 12:50:43
KNN算法:
好多样本(比如500个),每个样本存了一个0和1描述的矩阵(一般的数字图片可经过预处理(二值化,平滑去噪归一化)等方式变成类似的存储结构),类似下图,并告诉该样本是数字几。

手写数字识别的机器学习方法讨论
然后我们在程序中,把这个矩阵变成一行向量,然后把这500个样本的行向量存到一个矩阵或者哈希表中。

然后我们取一个需要判别数字的样本,把它的矩阵也变成行,然后循环分别求它跟上面500个样本行的欧式距离。求出来去距离最小的K个样本,然后判断在这K个样本种,哪种数字最多,就判断该待测样本是什么数字。

优点:思路简单。
缺点:存储空间大,计算时间长。


决策树:有好多种针对数字识别的建立决策树的方法,根据不同特征分类,下面是一个我觉得比较可行的方法
http://www.doc88.com/p-1922129320599.html   

(基于决策树的手写数字的识别 Handwritten Numeral Recognition Based On Decis.)

原理是图像用灰度图或者二值图表示,经过一系列降噪,剪裁之后,将原图切分成矩阵小图,比如3*5的小图。然后分别求这15个小图的密度特征(1-10)。这样每一个原始的大图就具有了15个特征属性。
这里决策树的属性变量是数字型,可以使用>= 或者<=来作为分隔条件。这样在每一步分割的时候,需要分别遍历剩余属性点的1-10中所有的点,选一个熵增益最大的当做当前分割点。
这样分割,每一次都能判别出一个数字的类别。
比如第一次判断的时候,发现用第2块小图的密度,以密度为5作为分割,这时的熵是最大的。所以做一次分割,分割后,左右两边,右边仍然是杂乱无章的,而明显左边大部分的数字类别都是数字1(可以定义个阈值或者投票)。认为此次分割分离出了1.
。。。
然后依次类推。。直到第10次分割,就认为吧所有的0-9的数字都区分了。

然后代入待测样本的密度,根据决策树就能找到对应的数字类别。

手写数字识别的机器学习方法讨论

SVM
在有限小样本的情况下非常实用。
其实总体思路跟决策树差不多,
手写数字识别的机器学习方法讨论


手写数字识别的机器学习方法讨论
http://www.doc88.com/p-9042734774169.html
神经网络
差不多,暴力计算。没试过。

机器学习实践之手写数字识别 - 数据初识

选择手写数据识别来实践机器学习及数据挖掘的知识。
  • net_wolf_007
  • net_wolf_007
  • 2016年06月14日 17:29
  • 1312

Matlab实现决策树算法进行数字识别

决策树是一个与流程图相似的树状结构;其中,每一个内部结点都是对一个属性的测试,每一个分枝代表一个结果输出,而每个树叶结点代表一个特定的类或者类的分布。决策树最顶层结点称作根结点。一棵典型的决策树如图1...
  • geyalu
  • geyalu
  • 2015年11月20日 19:46
  • 2522

KNN--用于手写数字识别(机器学习入门笔记)

最近在看机器学习实战这本书,写下博客作为笔记以帮助记忆。一、K-近邻算法概述概括的说,K-近邻算法采用测量不同特征值之间的距离的方法进行分类。 它的工作原理是:存在一个样本数据集合,也称训练样本集,...
  • zengxyuyu
  • zengxyuyu
  • 2017年01月13日 21:32
  • 2326

SVM学习笔记(二)----手写数字识别

SVM学习笔记(二) 引言 人类视觉系统是世界上众多的奇迹之一。看看下面的手写数字序列: 大多数人毫不费力就能够认出这些数字为504192。如果尝试让计算机程序来识别诸如上面的数字,就会...
  • chunxiao2008
  • chunxiao2008
  • 2016年01月02日 13:00
  • 6299

基于SVM和KNN的手写数字的识别(分类)——小试牛刀篇

数据下载地址:http://download.csdn.net/detail/zhulf0804/9719836 这里采用的是k近邻算法(KNN)实现的手写数字识别。 python实现代码: # -*...
  • zhulf0804
  • zhulf0804
  • 2016年12月23日 20:03
  • 1260

【机器学习算法实现】kNN算法__手写识别——基于Python和NumPy函数库

kNN算法,即K最近邻(k-NearestNeighbor)分类算法,是最简单的机器学习算法之一,算法思想很简单:从训练样本集中选择k个与测试样本“距离”最近的样本,这k个样本中出现频率最高的类别即作...
  • u012162613
  • u012162613
  • 2014年12月06日 01:33
  • 21754

手把手入门神经网络系列(2)_74行代码实现手写数字识别

“机器学习”是一个很实践的过程。就像刚开始学游泳,你在只在岸上比划一堆规定动作还不如先跳到水里熟悉水性学习来得快。以我们学习“机器学习”的经验来看,很多高大上的概念刚开始不懂也没关系,先写个东西来跑跑...
  • longxinchen_ml
  • longxinchen_ml
  • 2015年12月13日 10:17
  • 22236

2. 机器学习实践之手写数字识别 - 初步特征选择及线性识别

对测试集数据(train.csv)进行简单特征分析,并进行简单线性回归识别。
  • net_wolf_007
  • net_wolf_007
  • 2016年06月23日 13:01
  • 1796

TensorFlow学习笔记(三):手写数字识别之卷积神经网络

保留图片的二维空间结构信息,使用cnn(卷积神经网路)识别mnist数据集的手写数字。...
  • zchang81
  • zchang81
  • 2017年03月28日 14:59
  • 1333

手写数字识别(二)----SVM 实现Mnist-image 手写数字图像识别

前言前两天利用kNN实现了手写数字的识别,数据不是很多,训练数据1934个,测试数据946个。这两天把Mnist-image的手写数字数据down了下来,利用SVM进行识别一下。Mnist-image...
  • ni_guang2010
  • ni_guang2010
  • 2016年11月07日 19:49
  • 6061
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:手写数字识别的机器学习方法讨论
举报原因:
原因补充:

(最多只允许输入30个字)