神经网络预测mnist时候如果不归一化,则准确率仅仅10%下文作者svm也遇到了。

简介:

转自:http://blog.csdn.net/jeryjeryjery/article/details/72649320

这两天用Python来实现手写数字识别,刚开始用原始数据进行训练,结果预测结果都是同一个类别,全部是对应数字1。正确率也只有10%左右,下面是代码及运行结果截图: 
这里写图片描述

预测结果都是数字1。

  数据归一化是指将特征值从一个大范围映射到[0,1]或者[-1,1],如果原始值都是正数,则建议选择映射到[0,1];如果原始值有正数又有负数,则建议映射到[-1,1];具体情况需要具体分析。映射到[0,1]的实现是: 

new_value=valuemin_valuemax_valuemin_value


这样就能实现从原来的范围映射到[0,1]之间。 
libsvm中提供了数据归一化工具,就是svm-scale这个工具。如果你的数据文件已经满足了svm的格式要求,即labele1e2 这种格式,那么在window平台下,你可以直接调用libsvm\windows\svm-scale.exe文件来进行归一化操作。具体步骤是在cmd命令行中进入到svm-scale.exe所在文件夹,然后运行svm-scale来实现归一化。svm-scale的语法截图如下: 
scale语法 
其中-l 指定下界,-u指定上界,-s指定保存scale参数文件路径,-r源文件路径

下面以数据源train.txt为例,将其归一化到[0,1],并存入到train-to-one.txt中,语句截图如下: 
这里写图片描述

  因为手写数字图片是由一系列的像素点组成的,像素值从0到255,所以可以让每一个像素值除以255,从而实现映射。可以调用svm-scale来实现,也可以直接编写java代码来实现,然后再以归一化之后的数据进行训练模型并预测,其代码和截图如下: 
归一化数据

可以看出,准确率和速率明显提高了,不会出现仅仅只有一类的问题。但是其中的原理,本人现在还不知道,等我理解了再解释吧!
















本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/bonelee/p/7880916.html,如需转载请自行联系原作者


相关文章
|
2月前
|
机器学习/深度学习 编解码 PyTorch
Pytorch实现手写数字识别 | MNIST数据集(CNN卷积神经网络)
Pytorch实现手写数字识别 | MNIST数据集(CNN卷积神经网络)
|
1月前
|
机器学习/深度学习 算法 数据库
基于CNN卷积网络的MNIST手写数字识别matlab仿真,CNN编程实现不使用matlab工具箱
基于CNN卷积网络的MNIST手写数字识别matlab仿真,CNN编程实现不使用matlab工具箱
|
6天前
|
机器学习/深度学习 数据采集 TensorFlow
R语言KERAS深度学习CNN卷积神经网络分类识别手写数字图像数据(MNIST)
R语言KERAS深度学习CNN卷积神经网络分类识别手写数字图像数据(MNIST)
23 0
|
2月前
|
机器学习/深度学习 算法 PyTorch
pytorch实现手写数字识别 | MNIST数据集(全连接神经网络)
pytorch实现手写数字识别 | MNIST数据集(全连接神经网络)
|
4月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
【Keras+计算机视觉+Tensorflow】DCGAN对抗生成网络在MNIST手写数据集上实战(附源码和数据集 超详细)
【Keras+计算机视觉+Tensorflow】DCGAN对抗生成网络在MNIST手写数据集上实战(附源码和数据集 超详细)
48 0
|
4月前
|
机器学习/深度学习 数据采集 PyTorch
PyTorch使用神经网络进行手写数字识别实战(附源码,包括损失图像和准确率图像)
PyTorch使用神经网络进行手写数字识别实战(附源码,包括损失图像和准确率图像)
46 0
|
8月前
|
机器学习/深度学习 数据采集 资源调度
基于LeNet网络的MNIST手写数字训练和识别matlab仿真
基于LeNet网络的MNIST手写数字训练和识别matlab仿真
|
8月前
|
机器学习/深度学习 数据采集 监控
五、神经网络过拟合处理方法(二):手写数字识别(Mnist)数据集
五、神经网络过拟合处理方法(二):手写数字识别(Mnist)数据集
|
9月前
|
机器学习/深度学习 数据采集 算法
基于CNN卷积神经网络的目标识别算法matlab仿真,测试mnist数据库
基于CNN卷积神经网络的目标识别算法matlab仿真,测试mnist数据库
|
9月前
|
机器学习/深度学习 自然语言处理 算法
使用PyTorch构建神经网络(详细步骤讲解+注释版) 03 模型评价与准确率提升
使用PyTorch构建神经网络(详细步骤讲解+注释版) 02-数据读取与训练 本文的使用的部分类方法为前述文章定义所得,如果希望运行完整代码建议同时查看上一篇文章或文末留言发你完整代码。
使用PyTorch构建神经网络(详细步骤讲解+注释版) 03 模型评价与准确率提升

热门文章

最新文章