1、实验环境
Win7下使用 Eclipse IDE JAVA语言
2、样本准备
拥有测试和训练两组样本,其内容为手写数字图片。
3、样本处理
将图片进行二值化。使用数组binaryImagenum1记录每个像素点的值, (0,0,0,)为0,(255,255,255)为1;
处理代码如下:
在对每个二值化处理后的数字图片按照5*5的方式划分,一共25份。
若每一份中1的个数超过一般则对应的特征值为1 ,否则为0.
4、算法实现
(1)先计算先验概率
P(wi)类别为数字i的先验概率
Ni数字i的样品数
N为样品总数
(2)计算,再计算类条件概率
表示样品X属于wi类条件下,X的第j个分量为1的概率估计值。
(3)利用贝叶斯公式求后验概率
(4)后验概率的最大值的类别(0—9)就是手写数字的所属类别。
实现代码:
5、得出结论
根据3中对训练图片的处理得到0~9后视概率,用程序读入测试数据中的图片,通过二值化后进行5*5的分割,后验概率的最大值的类别(0—9)就是测试数据手写数字的所属类别。
图片和实验数据下载: http://download.csdn.net/detail/u013398034/9420405