什么是核函数
分类问题中,可以使用高级数的多项式模型来解决无法用直线进行分隔的分类问题
![](https://img.haomeiwen.com/i13975801/f52d97d089381587.png)
假设上图的假设函数是
除了对原有的特征进行组合以外,有没有更好的方法来构造?我们可以利用核函数来计算出新的特征
可以用一系列的新的特征来替换模型中的每一项:
,
,
……
给定一个训练样本,我们利用的各个特征与我们预先选定的地标
(landmarks)的近似程度来选取新的特征
![](https://img.haomeiwen.com/i13975801/a708c3817e9af7f2.png)
近似度的定义为
所有特征与地标
其中,核函数为
如果一个训练样本与地标
之间的距离近似于0,则新特征
近似于1,如果训练样本与地标之间距离较远,则近似于0
假设我们的训练样本含有两个特征,给定地标与不同的
值,见下图
![](https://img.haomeiwen.com/i13975801/6bda95cf4ab17050.png)
当样本值与地标值重合时,核函数才具有最大值1
如下图,假设了一组值,假设一个样本是图中的粉色点,距离
很近,
趋近于1,
和
趋近于0,那么假设函数的值为1,预测为1
假设一个样本数是图中蓝色的点,和
和
都趋近于0,假设函数为0,预测为0
![](https://img.haomeiwen.com/i13975801/a76fbd70dd887cd9.png)
这样,图中红色的封闭曲线所表示的范围,便是我们依据一个单一的训练样本和我们选取的地标所得出的判定边界,在预测时,我们采用的特征不是训练样本本身的特征,而是通过核函数计算出的新特征
核函数如何选取
通常是根据训练集的数量选择地标的数量,即如果训练集中有个样本,则我们选取
个地标,并且令:
。这样做的好处在于:现在我们得到的新特征是建立在原有特征与训练集中所有其他特征之间距离的基础之上的,即
![](https://img.haomeiwen.com/i13975801/f3c49e6bbe1e0675.png)
![](https://img.haomeiwen.com/i13975801/1fb44a418e0a5edd.png)
对于一个样本,根据核函数计算出
,当
,预测
怎么得到?通过代价函数,注意
是加到m,不是n
下面是支持向量机的两个参数和
的影响:
-
过大,相当于
过小,过拟合
-
过大,
变化的非常平滑(见上一部分第3个图),欠拟合
使用SVM注意事项
尽管你不去写你自己的SVM的优化软件,但是你也需要做几件事:
1、参数的选择,上一部分讨论过误差/方差在这方面的性质。
2、你选择不需要任何内核参数,没有内核参数的理念,也叫线性核函数。因此,如果有人说他使用了线性核的SVM(支持向量机),这就意味这他使用了不带有核函数的SVM(支持向量机)。
下面是一些普遍使用的准则:为特征数,
为训练样本数。
- 如果相较于
而言,
要大许多,即训练集数据量不够支持我们训练一个复杂的非线性模型,我们选用逻辑回归模型或者不带核函数的支持向量机。
- 如果
较小,而且
大小中等,例如在 1-1000 之间,而在10-10000之间,使用高斯核函数的支持向量机。
- 如果
较小,而
较大,例如
在1-1000之间,而
大于50000,则使用支持向量机会非常慢,解决方案是创造、增加更多的特征,然后使用逻辑回归或不带核函数的支持向量机。
值得一提的是,神经网络在以上三种情况下都可能会有较好的表现,但是训练神经网络可能非常慢,选择支持向量机的原因主要在于它的代价函数是凸函数,不存在局部最小值
网友评论