DL之NN:基于(sklearn自带手写数字图片识别数据集)+自定义NN类(三层64→100→10)实现97.5%准确率-阿里云开发者社区

开发者社区> 一个处女座的程序猿> 正文

DL之NN:基于(sklearn自带手写数字图片识别数据集)+自定义NN类(三层64→100→10)实现97.5%准确率

简介: DL之NN:基于(sklearn自带手写数字图片识别数据集)+自定义NN类(三层64→100→10)实现97.5%准确率
+关注继续查看

输出结果

image.png

image.png

核心代码

#DL之NN:基于sklearn自带手写数字图片识别数据集+自定义NN类(三层64→100→10)实现97.5%准确率

#输入64+1(偏置)个神经元,隐藏层神经元个数可以自定义,输出层10个神经元

import numpy as np  

from sklearn.datasets import load_digits              #sklearn自带数据集

from sklearn.metrics import confusion_matrix, classification_report  

from sklearn.preprocessing import LabelBinarizer      #标签二值化

from sklearn.cross_validation import train_test_split  #将数据切分分训练数据和测试数据

import matplotlib.pyplot as plt

def sigmoid(x):

   return 1/(1+np.exp(-x))

def dsigmoid(x):

   return x*(1-x)

……

               

   def predict(self,x):  #预测函数,也需要先添加偏置

       #添加偏置,最初的数据64上需额外加入偏置列

       temp=np.ones(x.shape[0]+1)   #

       temp[0:-1]=x #该矩阵的0列到-1列

       x=temp   #通过转换行没有变,但是多了一列

       x=np.atleast_2d(x) #转为2维数据

       L1=sigmoid(np.dot(x,self.V)) #隐藏层输出

       L2=sigmoid(np.dot(L1,self.W)) #输出层输出

       return L2

   

digits = load_digits()  #下载数据集

X = digits.data         #输入数据

y = digits.target       #标签

#输入数据归一化:把最初的数据都变为[0~1]之间的数据

X -= X.min()  

X /= X.max()  

nn = NeuralNetwork([64, 100, 10]) #构建神经网络,神经元个数

X_train, X_test, y_train, y_test = train_test_split(X, y)  #分割数据,75%为训练25%为测试

#对标签二值化,将输出变为神经网络的风格:比如若输出3→0001000000

labels_train = LabelBinarizer().fit_transform(y_train)  

labels_test = LabelBinarizer().fit_transform(y_test)

print ("start")  

nn.train(X_train, labels_train, epochs=30000)  

print ("over")  


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
nodejs,python,sublime和Eclipse的包管理器
Python的包管理器叫pip。 首先安装Python运行环境Python 3.7.0:https://www.python.org/downloads/release/python-370/
6 0
SQLite简介与安装
SQLite简介与安装
6 0
Python 2 正式退休,Python 3 时代到来!
Python 2 正式退休,Python 3 时代到来!
8 0
Bioinformatics|癌症细胞系的用药反应预测
Bioinformatics|癌症细胞系的用药反应预测
3 0
JMC | 基于机器学习精确预测激酶抑制剂结合模式
JMC | 基于机器学习精确预测激酶抑制剂结合模式
5 0
蛋白序列 | 基于深度学习的蛋白质序列家族分类
蛋白序列 | 基于深度学习的蛋白质序列家族分类
5 0
实战中反射的应用
实战中反射的应用
3 0
EPIVAN | 基于预训练和注意力机制的启动子增强子相互作用预测
EPIVAN | 基于预训练和注意力机制的启动子增强子相互作用预测
4 0
一文教你优雅落地在线预览服务
一文教你优雅落地在线预览服务
10 0
GraphDTA | 基于图卷积网络预测药物-靶标结合亲和力
GraphDTA | 基于图卷积网络预测药物-靶标结合亲和力
5 0
+关注
一个处女座的程序猿
国内互联网圈知名博主、人工智能领域优秀创作者,全球最大中文IT社区博客专家、CSDN开发者联盟生态成员、中国开源社区专家、华为云社区专家、51CTO社区专家、Python社区专家等,曾受邀采访和评审十多次。仅在国内的CSDN平台,博客文章浏览量超过2500万,拥有超过57万的粉丝。
1701
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载