基于MOOC人工智能之模式识别的课程完成的第三次作业
MATLAB实现支持向量机算法(MNIST数据集)
MOOC地址:人工智能之模式识别
SVM 是通过学习样本寻找分类间隔边界,把这一过程转化为了
一个优化问题。众所周知,分类间隔是由距离分类决策边界最近的那些少量样本决定的,而比这些样本距离分类决策边界更远的大量样本,其实都不会影响到最优权向量的求取,这些作用十分特殊的样本,就被称为“支持向量”,表示是他们支撑起了线性分类器在最大分类间隔意义下的最优解。这也是为什么这种算法被称为“支持向量机(Support Vector Machine,SVM)”的原因。
SVM.m 程序代码主要实现了数据集读入,定义 SVM 分类器模板、训练,测试及结果输出几个部分。
clear variables
clc
load ('./test_images.mat');
load ('./test_labels.mat');
load ('./train_images.mat');
load ('./train_labels.mat');%数据集的读入
train_num =2000;
test_num = 200;
data_train = mat2vector(train_images(:,:,1:train_num),train_num);%图像转向量
data_test = mat2vector(test_images(:,:,1:test_num),test_num);%mnist数据集图像为28*28
% 这里我们用最简单的线性模型做演示&