1.1题目的主要研究内容
- 了解分类器的原理和算法流程。利用现有的任意公开数据集实现了分类器分类,并利用评价标准对分类结果进行分析评判。
- 我在本组中主要负责资料的查找以及PPT讲解部分。
理解SVM的工作原理:
在训练初期,分类器只看到很少的数据点,它试着画出分隔两个类的最佳决策边界。随着训练的进行,分类器会看到越来越多的数据样本,因此在每一步中不断更新决策边界。
随着训练的进行,分类器可以看到越来越多的数据样本,因此越来越清楚地知道最优决策边界应该在哪里。在这种场景下,如果决策边界的绘制方式是“–”样本位于决策边界的左边,或者“+”样本位于决策边界的右边,那么就会出现一个误分类错误。
一个SVM最有可能选择实线,因为这是“+”类和“–”类数据点之间的最大间隔的决策边界。
结果表明,为了找到最大边界,只需要考虑位于类边界上的数据点。这些数据点也被称为支持向量这也是SVM这个名字的由来。
1.2题目研究的工作基础或实验条件
(1)硬件环境:PC电脑端
(2)软件环境:编程语言为Python及M语言,编程环境为Pycharm和Matlab。
1.3设计思想
首先查找资料,对SVM分类器的工作原理以及算法流程进行了解。接下来进行上机操作,我们选用MATLAB中自带的cancer_datasets乳腺癌细胞数据集,其中有9个特征值,2个标签判断细胞是良性还是恶性。接下来对数据集进行预处理,我们选取的数据集中一共有699个细胞,这里选取前500个作为训练集,其余细胞作为测试集。想要求出最佳的支持向量机模型所以这里我们使用交叉验证来构建SVM模型,对训练集数据进行训练。最后我们用测试集来评价模型,同时用查准率作为模型的评价标准。
1.4流程图
1.5主要程序代码(要求必须有注释)
SVM分类器分类Matlab程序代码:
clear
close all
clc
%% 初始化数据
load("cancer_dataset.mat")%%E:\matlab2021b\toolbox\nnet\nndemos\nndatasets
cancer_original=[cancerInputs;cancerTargets];
cancer_original=cancer_ori