ex3的第一小节是扩充之前的logistic regression算法,并将其应用到多分类器中。
1、数据集
文件ex3data1.mat中包含了5000个手写数字训练样本,每个数字图像含有2020个灰度像素值,使用浮点数来代替每个位置的灰度级,每个图像存储为400维矢量。文件ex3data1.mat含有矩阵X和矢量y,其中X维度为5000400,y的维度为5000*1,每个训练样本(手写数字图像)均为矩阵X的1行,则矩阵X可以表示为:
矢量y为训练集的标签,其每行的数据代表的是对应X矩阵中对应行的训练样本代表的数值,即0-9。由于在matlab中没有偏移量index0,因此,将标签值’0’修改为’10’,即y中数值实际为1-10,其中10代表0。
load('ex3data1.mat'); % training data stored in arrays X, y
2、原始数据的可视化
clear ; close all; clc
input_layer_size = 400; % 20x20 Input Images of Digits,输入点数为400
num_labels = 10; % 10 labels, from 1 to 10,输出点数为10
% (note that we have mapped "0" to label 10)
% Load Training Data
fprintf('Loading and Visualizing Data ...\n')
load('ex3data1.mat'); % training data stored in arrays X, y
m = size(X, 1);%m为X的总行数,即训练样本的个数
% Randomly select 100 data points to display
rand_in