机器学习编程作业-支持向量机

支持向量机

作业说明

任务一:分别用线性SVM和高斯核SVM预测对数据进行分类。这个代码都写好了,运行一下就行了
任务二:使用高斯核SVM对给定数据集进行分类。给定数据集(文件task2.mat), 参考task1的代码, 编程实现一个高斯核SVM进行分类。输出训练参数C, sigma分别取0.01, 0.03, 0.1, 0.3, 1, 3, 10, 30时(共64组参数组合)的训练集上的准确率。这个只要用任务一给的代码,再稍微改一下别的就行了。
任务三:使用线性SVM实现对垃圾邮件分类。数据集是mat文件。这个也是用任务一给的代码就行了。只不过是线性核
因为直接用给的代码就行,所以这次作业没什么难度

复习

支持向量机学的时候我没什么感觉,因为我没有基础,学啥都觉得难。据我的同学那些提前学过机器学习的说,支持向量机是最难理解的。
支持向量机就是基于训练集在样本空间中划分一个超平面,划分超平面要找到一个最大间隔。
max ⁡ w , b 2 ∣ ∣ w ∣ ∣ \max_{w,b}\frac{2}{||w||} maxw,b∣∣w∣∣2
s . t . y i ( w T x i + b ) ≥ 1 s.t. y_{i}(w^{T}x_{i}+b)\ge1 s.t.yi(wTxi+b)1
该问题等价于
min ⁡ w , b 1 2 ∣ ∣ w ∣ ∣ 2 \min_{w,b}\frac{1}{2}||w||^{2} minw,b21∣∣w2
s . t . y i ( w T x i + b ) ≥ 1 s.t. y_{i}(w^{T}x_{i}+b)\ge1 s.t.yi(wTxi+b)1
回忆一下大一下微积分学过的拉格朗日极值法,构建对偶问题然后求偏导为零得到极值
L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 m α i ( 1 − y i ( w T x i + b ) ) L(w,b,\alpha)=\frac{1}{2}||w||^{2}+\sum_{i=1}^{m}\alpha_{i}(1-y_{i}(w^Tx_i+b)) L(w,b,α)=21∣∣w2+i=1mαi(1yi(wTxi+b))求偏导可以得到
w = ∑ i = 1 m ( α i y i x i ) w=\sum_{i=1}^{m}(\alpha_{i}y_{i}x_{i}) w=i=1m(αiyixi)
0 = ∑ i = 1 m ( α i y i ) 0=\sum_{i=1}^{m}(\alpha_iy_i) 0=i=1m(αiyi)
将这两个式子带入拉格朗日函数得
max ⁡ α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j \max_{\alpha}\sum_{i=1}^{m}\alpha_i-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_jx_i^Tx_j maxαi=1mαi21i=1mj=1mαiαjyiyjxiTxj
s . t . ∑ i = 1 m α i y i = 0 , α i ≥ 0 s.t.\sum_{i=1}^{m}\alpha_iy_i=0,\alpha_i\ge0 s.t.i=1mαiyi=0,αi0
到这里就差不多了,对于这个的解法,核函数这些概念还得看教材好好领悟才行啊

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值