《机器学习》周志华课后习题答案——第六章 (1-7已完结)



1.试证明样本空间中任意点x到超平面(w, b)的距离为式(6.2).

请添加图片描述

2.试使用LIBSVM,在西瓜数据集3.0a上分别用线性核和高斯核训练一个SVM,并比较其支持向量的差别.

训练的结果是线性核与高斯核得到了完全一样的支持向量, 由于没法分析libsvm内部是如何计算的,
这里只贴结果。
第一列是支持向量的权值,后面则是支持向量对应的属性
请添加图片描述

3.选择两个UCI数据集,分别用线性核和高斯核训练-一个SVM,并与BP神经网络和C4.5决策树进行实验比较.

使用的是iris数据集,选取其中分类为1,2的样本,各50个,4个属性,每类选前40个样本训练,后10个样本作为测试
线性核:找出3个支持向量
偏置为1.50709
请添加图片描述

高斯核:找出9个支持向量
偏置为-0.212437

请添加图片描述

读取数据
w1 = xlsread('C:\Users\icefire\Desktop\ml\tmp.xlsx', 'sheet1', 'A1:C1');
w2 = xlsread('C:\Users\icefire\Desktop\ml\tmp.xlsx', 'sheet1', 'D1:L1');
x1 = xlsread('C:\Users\icefire\Desktop\ml\tmp.xlsx', 'sheet1', 'A2:C5');
x2 = xlsread('C:\Users\icefire\Desktop\ml\tmp.xlsx', 'sheet1', 'D2:L5');
x = xlsread('C:\Users\icefire\Desktop\ml\tmp.xlsx', 'sheet1', 'A7:T10');
y1=zeros(20,1);
y2=zeros(20,1);
%验证线性核
for i=1:20
	for j=1:3
		y1(i)=y1(i)+w1(j)*(x(:,i)'*x1(:,j));
	end
end
y1=y1+1.50709;
%验证高斯核
for i=1:20
	for j=1:9
		y2(i)=y2(i)+w2(j)*exp(-0.25*(x2(:,j)-x(:,i))'*(x2(:,j)-x(:,i)));
	end
end
y2=y2-0.212437;

结果:
请添加图片描述

4.试讨论线性判别分析与线性核支持向量机在何种条件下等价.

在线性可分的情况下,LDA求出的wI与线性核支持向量机求出的ws有wl*Ws=0,即垂直,此时两者是等价的。

·首先,如果可以使用软间隔的线性SVM,其实线性可分这个条件是不必要的,如果是硬间隔线性SVM,那么线性可分是必要条件。这个题只说了是线性SVM,就没必要关心数据是不是可分,毕竟LDA是都可以处理的。

·第二,假如当前样本线性可分,且SVM与LDA求出的结果相互垂直。当SVM的支持向量固定时,再加入新的样本,并不会改变求出的w,但是新加入的样本会改变原类型数据的协方差和均值,从而导致LDA求出的结果发生改变。这个时候两者的w就不垂直了,但是数据依然是可分的。所以我上面说的垂直是有问题的。

当线性SVM和LDA求出的w互相垂直时,两者是等价的,SVM这个时候也就比LDA多了个偏移b而已。

5.试述高斯核SVM与RBF神经网络之间的联系.

RBF网络的径向基函数与SVM都可以采镐斯核,也就分别得到了高斯核RBF网络与高斯核SVM。

神经网络是最小化累计误差,将参数作为惩罚项,而SVM相反,要是最小化参数,将误差作为惩罚项。

在二分类问题中,如果将RBF中隐层数为样本个数,晦个样本中心就是样本参数,得出的RBF网络与核SVM基本等价,技拘将得到很小的w.

使用LIBSVM对异或问题训练一个高斯核SVM得到a, 修改第5章RBF网络的代码,固定β参数为高斯核SVM的参数,修改每个隐层神经元的中心为各个输入参数,得到结果w,w与a各项成正比例。

6.试析SVM对噪声敏感的原因.

SVM的目的是求出与支持向量有最大化距离的直线,以每个样本为圆心,该距离为半径做圆,可以近似认为圆内的点与该样本属于相同分类。如果出现了噪声,那么这个噪声所带来的错误分类也将最大化,所以SVM对噪声是很敏感的。

7.试给出式(6.52)的完整KKT条件.

非等式约束写成拉格朗日乘子式,取最优解要满足两个条件
●拉格朗日乘子式对所有非拉格朗日参数的一阶偏导为0
●非等式约束对应的拉格朗日项,要么非等式的等号成立,要么对应的拉格朗日参数为0
所以得到完整KT条件
请添加图片描述

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐