PCA对手写数字数据集的降维 1. 导入需要的模块和库 from sklearn.decomposition import PCA from sklearn.ensemble import RandomForestClassifier as RFC from sklearn.model_selection import cross_val_score import matplotlib.pyplot as plt import pandas as pd import numpy as np 2.
import numpy as np import matplotlib .pyplot as plt from sklearn.neighbors import KNeighborsClassifier 读取样本数据,图片 样本数据的提取 特征:每一张图片对应的numpy数组 目标:0,1,2,3,4,5,6,7,8,9 feature = [] target = [] for i in range(10):#i:0-9表示的是文件夹的名称 for j in range(1,501):#j:1
# 导包 import numpy as np import matplotlib.pyplot as plt from sklearn.neighbors import KNeighborsClassifier # 获取数据 feature = [] target = [] for i in range(10): for j in range(1,501): img_arr = plt.imread('F:/data/%d/%d_%d.bmp'%(i,i,j)) feature.append(
在本篇博文当中,笔者采用了卷积神经网络来对手写数字进行识别,采用的神经网络的结构是:输入图片——卷积层——池化层——卷积层——池化层——卷积层——池化层——Flatten层——全连接层(64个神经元)——全连接层(500个神经元)——softmax函数,最后得到分类的结果.Flatten层用于将池化之后的多个二维数组展开成一维数组,再灌入全连接层的神经元当中. 首先导包: import keras from keras import layers from keras import models
上一篇文章,比较了三种算法实现对手写数字识别,其中,SVM和神经网络算法表现非常好准确率都在90%以上,本文章进一步探讨对神经网络算法优化,进一步提高准确率,通过测试发现,准确率提高了很多. 首先,改变之一: 先在初始化权重的部分,采取一种更为好的随机初始化方法,我们依旧保持正态分布的均值不变,只对标准差进行改动, 初始化权重改变前, def large_weight_initializer(self): self.biases = [np.random.randn(y, 1) for y in