type
status
date
summary
slug
tags
category
icon
password
实验说明
实验目的
掌握线性SVM的基本原理和基本设计步骤;
掌握非线性SVM的基本原理和基本设计步骤。
实验数据


实验内容及说明
使用 exp5_1.mat 数据,构造线性 SVM 对数据进行划分,给出可视化的划分边界结果。
探究不同程度的惩罚因子 c 对样本分类误差的影响。
(选做)构造使用 Gaussian kernels 的 SVM, 对exp5_2.mat 数据进行划分,给出可视化的划分边界的结果。
注意事项
编程语言不限,推荐使用python;
xxx.mat数据文件可以使用scipy.io进行读取处理,模型需要自己实现,不可使用已有的第三方库;实验报告中提供的代码需要有必要的注释。
前置内容学习
支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;SVM还包括核技巧,这使它成为实质上的非线性分类器。
SVM的的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。SVM的的学习算法就是求解凸二次规划的最优化算法。
SVM基础型推导

间隔(margin):两个异类支持向量到超平面的距离之和为:
是分离超平面,对于线性可分的数据集来说,这样的超平面有无穷多个(级感知机),但是几何间隔最大的分离超平面是唯一的,我们要寻找的就是使d最大化的参数,因此我们可以将SVM模型的求解最大分割超平面问题可以表示为以下约束最优化问题:
基础型对偶式推导
可以使用拉格朗日乘子法求解,构造拉格朗日目标函数:

首先令对w和b求偏导为0,讲求出的w*和b*代入原式,即可得到对偶式
实验步骤及内容
线性 SVM
实现线性SVM类:
可视化结果:
使用 Gaussian kernels 的 SVM
实现使用 Gaussian kernels 的 SVM类:
可视化结果:
实验结果与分析
线性SVM:
从这组可视化图像中,我们可以清晰地观察到正则化参数C对线性支持向量机分类效果的影响。
随着C值从0.01增加到1000,决策边界表现出明显的演变规律:
C=0.01时:决策边界最为"宽松",允许较多分类错误(可见明显误分类点),但保持了最宽的间隔(margin),可能具有更好的泛化能力,但训练集准确率较低
C=1000时:决策边界变得非常"严格",几乎不允许任何分类错误,但间隔变得极窄

使用 Gaussian kernels 的 SVM:

gamma(γ)是RBF核函数中的关键参数,其数学表达式为:
γ控制着单个样本的影响范围,与决策边界的"局部敏感度"直接相关,本质上决定了特征空间映射的复杂度
gamma参数通过调节RBF核函数的衰减速率,从根本上改变了模型对特征空间的感知方式。随着gamma增大,决策边界逐渐复杂化,模型的准确度逐渐增强,但也意味着模型的泛化能力逐渐下降,可能会出现过拟合。
- Author:Rainnn
- URL:https://blog.rainnn.top//article/1feeefba-b209-806c-91b3-d18be8dcd70a
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!