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

原创 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
神经网络
差不多,暴力计算。没试过。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

利用opencv提取Hu不变量特征 形状匹配 机器学习识别手写数字 傅里叶变换

void GetHu(string image_path)   {      IplImage *src_image = cvLoadImage(image...

机器学习实战k近邻算法(kNN)应用之手写数字识别代码解读

一.背景简要说明 书中假设待识别的数字已经使用图形处理软件将其处理为32*32的黑白图像,并将图片转换为文本格式。如下图代表数字0: 每个数字的训练样本大概有200个,每个数字的测...

机器学习--knn手写数字识别系统

0. 刚接触java,并且在学习机器学习的相关算法,knn又非常的易于实现,于是就有了这个小系统。 1.knn算法简介: 2.该程序的功能主要有如下几个,       功能1:可以在面板上手写输...

机器学习-实战-入门-MNIST手写数字识别

作者:橘子派 声明:版权所有,转载请注明出处,谢谢。 源码地址:https://github.com/sileixinhua/Python_Machine_Learning_Sklearn...

【《机器学习实战》第2章读书笔记】手写数字识别系统剖析

用Python构建一个K近邻分类器,识别手写数字,其中书中给出的训练集数据1934个,测试集数据946个, 在没有交叉验证的情况下,最终的识别率为98.2% 手写数字经过图像处理之后,变成只由0、1构...

TensorFlow实现机器学习的“Hello World”--Mnist手写数字识别

TensorFlow实现机器学习的“Hello World”上一篇博客我们已经说了TensorFlow大概怎么使用,这次来说说机器学习中特别经典的案例,也相当于是机器学习的“Hello World”,...

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

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

机器学习深度学习基础笔记(2)——梯度下降之手写数字识别算法实现

该系列是笔者在机器学习深度学习系列课程学习过程中记录的笔记,简单粗暴,仅供参考。 下面的算法代码来自https://github.com/mnielsen/neural-networks-and-de...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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