本文主要是介绍【校招面经】机器学习与数据挖掘常见面试题整理 part9,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
八十、SVM的核函数
from:https://blog.csdn.net/lihaitao000/article/details/51173459
SVM核函数包括线性核函数、多项式核函数、径向基核函数、高斯核函数、幂指数核函数、拉普拉斯核函数、ANOVA核函数、二次有理核函数、多元二次核函数、逆多元二次核函数以及Sigmoid核函数. 核函数的定义并不困难,根据泛函的有关理论,只要一种函数 K ( x i , x j ) 满足Mercer条件,它就对应某一变换空间的内积.对于判断哪些函数是核函数到目前为止也取得了重要的突破,得到Mercer定理和以下常用的核函数类型: (1)线性核函数 K ( x , x i ) = x ⋅ x i (2)多项式核 K ( x , x i ) = ( ( x ⋅ x i ) + 1 ) d (3)径向基核(RBF) K ( x , x i ) = exp ( − ∥ x − x i ∥ 2 σ 2 ) Gauss径向基函数则是局部性强的核函数,其外推能力随着参数 σ 的增大而减弱。多项式形式的核函数具有良好的全局性质。局部性较差。 (4)傅里叶核 K ( x , x i ) = 1 − q 2 2 ( 1 − 2 q cos ( x − x i ) + q 2 ) (5)样条核 K ( x , x i ) = B 2 n + 1 ( x − x i ) (6)Sigmoid核函数 K ( x , x i ) = tanh ( κ ( x , x i ) − δ ) 采用Sigmoid函数作为核函数时,支持向量机实现的就是一种多层感知器神经网络,应用SVM方法,隐含层节点数目(它确定神经网络的结构)、隐含层节点对输入节点的权值都是在设计(训练)的过程中自动确定的。而且支持向量机的理论基础决定了它最终求得的是全局最优值而不是局部最小值,也保证了它对于未知样本的良好泛化能力而不会出现过学习现象。 核函数的选择 在选取核函数解决实际问题时,通常采用的方法有: 一是利用专家的先验知识预先选定核函数; 二是采用Cross-Validation方法,即在进行核函数选取时,分别试用不同的核函数,归纳误差最小的核函数就是最好的核函数.如针对傅立叶核、RBF核,结合信号处理问题中的函数回归问题,通过仿真实验,对比分析了在相同数据条件下,采用傅立叶核的SVM要比采用RBF核的SVM误差小很多. 三是采用由Smits等人提出的混合核函数方法,该方法较之前两者是目前选取核函数的主流方法,也是关于如何构造核函数的又一开创性的工作.将不同的核函数结合起来后会有更好的特性,这是混合核函数方法的基本思想
八十一、SVM-点到超平面的距离
from:https://blog.csdn.net/denghecsdn/article/details/77313758
前提知识:已知法线的情况下,求点到平面的距离:
d=| ( n*PA) / n | (n为法向量,P为该点,A为平面内任意一点)
n*PA是向量的点乘
—————————————————————————————
样本空间中的任意一点 x,到超平面(w,b)的距离,可以表示为
后来有同学评论说,点到超平面上的点为什么这么计算呢?我在这里再具体说一下。推导过程并不繁琐(这里以三维空间为例)。
对于超平面A
,假设 x‘ 为超平面上任意一点,那么,显然满足:
对于空间上任意一点 x, 到平面 A 的距离 H,等于 x 到超平面的法向量长度,也就是 向量 xx' 在垂直方向上(即法向量)上的投影。而计算投影,将 xx' 乘以法向量 w 即可。并且,我们不光要投影,还要计算单位,即使用单位为 1 的投影。也就是在分母除以 || w ||。所以,距离 H 可以表示为:
又因为:
所以,距离为:
八十二、SVM中,高斯核为什么会把原始维度映射到无穷多维?
from:https://blog.csdn.net/u013382288/article/details/80978456
1)先将高斯函数泰勒展开
2)将x和x'分离,发现它们长得一样
3)高斯函数里藏着无限多维的转换
八十三、SVM中的C和gamma
from:https://blog.csdn.net/u013382288/article/details/80978456
1. C
1)C越大,越不能容忍分类误差样本存在,也就是hard-margin SVM,容易出现曲线边,容易过拟合
2)C越小,不关心分类是否正确,而关心间隔是否够大,容易欠拟合
2. gamma:gamma是选择RBF函数作为kernel后,该函数自带的一个参数。隐含地决定了数据映射到新的特征空间后的分布,
1)gamma越大,支持向量越少,容易欠拟合
2)gamma值越小,支持向量越多,容易过拟合
支持向量的个数影响训练与预测的速度
八十四、SVM的原问题和对偶问题
from:https://blog.csdn.net/diligent_321/article/details/53396682
SVM原问题
SVM的几何意义是寻找一个最优分隔超平面,使其能把数据空间的两类点分开。记超平面方程为wTx+b=0,任意一点xi到超平面的距离公式为
di=|wTxi+b|||w||
所以,目标函数为
maxw,bmini∈{1,...,N}|wTxi+b|||w||
约束条件为
yi(wTxi+b)>0,i∈{1,...,N}
,这样便可以保证所有点都被正确分类。
观察上述规划问题可知,将w, b同时放大或者缩小相同的倍数,不影响结果,即w, b存在多组解。为了得到唯一的一组w, b, 不妨令“函数间隔”为1,即令样本集满足
mini∈{1,...,N}|wTxi+b|=1
,那么可以转化为新问题如下,
maxw,b1||w||=minw,b12||w||2s,t yi(wTxi+b)≥1,i∈{1,...,N}
SVM对偶问题
对于SVM而言,原问题
minwθp(w)=minwmaxα,β,αi≥0L(w,α,β)
不易求解,但由于原问题为二次规划问题,满足“strong duality”关系,故可解其对偶问题。
maxα,β,αi≥0minwL(w,α,β)=maxα,αi≥0minw,b{12||w||2−∑i=1Nαi[yi(wTxi+b)−1]}
求解偏导数得
∂L(w,α)∂w=w−∑i=1Nαiyixi∂L(w,α)∂b=−∑i=1Nαiyi
,若令∂L(w,α)∂w=0,∂L(w,α)∂b=0,则可解之得
w∗=∑i=1Nαiyixi, ∑i=1Nαiyi=0
,于是,对偶问题转化为
maxα{∑i=1Nαi−12∑i,j=1Ny(i)y(j)αiαj<x(i),x(j)>}s,t αi≥0, i∈{1,...,N}∑i=1Nαiyi=0
,求解出α,则w∗,b∗也就得到了。决策方程可以表示为
(w∗)Tx+b=(∑i=1Nαiyixi)Tx+b=∑i=1Nαiyi<xi,x>+b
,上式中,看上去是对所有训练样例和测试样例做内积,计算量大,其实不然,从KKT条件可知,对偶问题解出的α参数,仅support vectors的αi非零,其余全0。
此外,引入对偶问题,除了简化“无约束”最优化过程外,还为核函数做了铺垫,而kernel function可以将原始样本映射到高维空间,使其变得“更有可能线性可分”(根据常识,数据越稀疏越可分)
这篇关于【校招面经】机器学习与数据挖掘常见面试题整理 part9的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!