赞
踩
前言
在之前的学习中,已经对神经网络的算法具体进行了学习和了解。现在,我们可以用python通过两种方法来实现手写数字的识别。这两种方法分别是多元逻辑回归和神经网络方法。
用多元逻辑回归手写数字识别
训练样本简介
首先,可以用逻辑回归实现手写数字识别的多元分类,在ex3data.mat文件中保存着一个包含5000个培训考试训练数据集的手写数字,.mat格式表示这些训练数据集以矩阵格式保存,而不是文本格式。训练集中有5000个训练样本,每个训练样本是一个20X20像素的灰度图像,每一个像素用一个float型数据表示当前位置的灰度强度。20X20像素形成一个400维向量,每一个训练样本形成一个单行矩阵
,5000个训练样本构成一个5000X400的矩阵,每一个行向量代表手写数字图像的训练样本。矩阵
可以如下表示:
数据集第二部分包含一个5000维的矩阵
, 代表输出值的标签,即0,1,2,3,4,5,6,7,8,9.
如下代码所示,首先导入算法实现所需要的python库
import matplotlib.pyplot as plt
import numpy as np
import scipy.io as scio
初始化一些参数
input_layer_size = 400 # 20x20 像素矩阵
num_labels = 10 # 手写数字 0,1,2,3,4,5,6,7,8,9
数据可视化
随机选取
矩阵中的100行向量,并将这些函数传递到displayData函数中,通过调用此函数,我们可以显示出这些向量的灰度图像,具体实现如下所示:
载入数据
data = scio.loadmat('ex3data1.mat')
X = data['X']
y = data['y'].flatten()
m = y.size
绘图函数实现
绘图函数的实现如下所示,具体实现思路就是确定显示图
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。