SVM核函数

感想

今天做了几道SVM的题目,发现自己还做错了,想当年我还是手推过SVM公式的人,看来SVM的理论我还是没有学全,变了样子之后我就不怎么会了,前几个月写过一些简单的关于SVM的最大间隔的博客,这次总结一下SVM的核函数。

problem

下列不是SVM核函数的是:
A 多项式核函数
B logistic核函数
C 径向基核函数

D Sigmoid核函数

正确答案是:B

analysis

支持向量机是建立在统计学习理论基础之上的新一代机器学习算法,支持向量机的优势主要体现在解决线性不可分问题,它通过引入核函数,巧妙地解决了在高维空间中的内积运算,从而很好地解决了非线性分类问题。


构造出一个具有良好性能的SVM,核函数的选择是关键.核函数的选择包括两部分工作:一是核函数类型的选择,二是确定核函数类型后相关参数的选择.因此如何根据具体的数据选择恰当的核函数是SVM应用领域遇到的一个重大难题,也成为科研工作者所关注的焦点,即便如此,却依然没有得到具体的理论或方法来指导核函数的选取.

经常使用的核函数


核函数的定义并不困难,根据泛函的有关理论,只要一种函数 K ( x i , x j ) 满足Mercer条件,它就对应某一变换空间的内积.对于判断哪些函数是核函数到目前为止也取得了重要的突破,得到Mercer定理和以下常用的核函数类型:

  1.  线性核函数

线性核函数是最简单的核函数,是径向基核函数的一个特例,公式为:

K(x,z)=<x,z>

主要用于线性可分的情形,对应线性可分支持向量机与线性支持向量机。它在原始空间中寻找最优线性分类器,具有参数少速度快的优势。

2.  多项式核函数

多项式核适合于正交归一化(向量正交且模为1)数据,公式为:


多项式核函数属于全局核函数,允许相距很远的数据点对核函数的值有影响。参数d越大,映射的维度越高,计算量就会越大。当d过大时,由于学习复杂性也会过高,易出现“过拟合现象。

3.  径向基核函数( Radial basis function)&高斯核函数

径向基核函数属于局部核函数,当数据点距离中心点变远时,取值会变小。公式为:


高斯核函数可以看作是径向基核函数的另一种形式:


高斯径向基核对数据中存在的噪声有着较好的抗干扰能力,由于其很强的局部性,其参数决定了函数作用范围,随着参数σ的增大而减弱。

4.  Sigmoid核函数 

Sigmoid核函数来源于神经网络,被广泛用于深度学习和机器学习中。公式为:


采用Sigmoid函数作为核函数时,支持向量机实现的就是一种多层感知器神经网络。支持向量机的理论基础(凸二次规划)决定了它最终求得的为全局最优值而不是局部最优值,也保证了它对未知样本的良好泛化能力。

5  字符串核函数

核函数不仅可以定义在欧氏空间上,还可以定义在离散数据的集合上。字符串核函数是定义在字符串集合上的核函数,可以直观地理解为度量一对字符串的相似度,在文本分类、信息检索等方面都有应用。

参考答案里面还给出了傅立叶核和样条核,我查了一下,这两个核函数好像很少见,资料很少,我这里只列出其公式,

6  傅立叶核:

K ( x , x i ) = 1 − q 2 2 ( 1 − 2 q cos ( x − x i ) + q 2 )

7 样条核

K ( x , x i ) = B 2 n + 1 ( x − x i )


核函数的选择


在选取核函数解决实际问题时,通常采用的方法有:

一是利用专家的先验知识预先选定核函数;

二是采用Cross-Validation方法,即在进行核函数选取时,分别试用不同的核函数,归纳误差最小的核函数就是最好的核函数.如针对傅立叶核、RBF核,结合信号处理问题中的函数回归问题,通过仿真实验,对比分析了在相同数据条件下,采用傅立叶核的SVM要比采用RBF核的SVM误差小很多.

三是采用由Smits等人提出的混合核函数方法,该方法较之前两者是目前选取核函数的主流方法,也是关于如何构造核函数的又一开创性的工作.将不同的核函数结合起来后会有更好的特性,这是混合核函数方法的基本思想

在吴恩达的课上,也曾经给出过一系列的选择核函数的方法:    
    如果特征的数量大到和样本数量差不多,则选用LR或者线性核的SVM;
    如果特征的数量小,样本的数量正常,则选用SVM+高斯核函数;
    如果特征的数量小,而样本的数量很大,则需要手工添加一些特征从而变成第一种情况。

参考文献

[1].理解支持向量机(二)核函数.http://blog.csdn.net/shijing_0214/article/details/51000845

[2].牛客网. https://www.nowcoder.com/questionTerminal/732300dcca8d49bca7183c5dc28d3236

[3].svm常用核函数.http://blog.csdn.net/batuwuhanpei/article/details/52354822


### 支持向量机中的核函数解释与实现 #### 核函数的作用 支持向量机(Support Vector Machine, SVM)是一种强大的监督学习算法,广泛应用于分类和回归任务。当数据不是线性可分时,SVM通过引入核函数将输入空间映射到高维特征空间,在该空间中寻找最优分离超平面[^1]。 常见的核函数包括多项式核、径向基函数(RBF)、sigmoid核以及直方图交集核等。这些核函数能够有效地处理不同类型的非线性关系。 #### 常见的核函数及其定义 1. **线性核函数** 线性核是最简单的核函数形式,适用于数据本身已经接近于线性可分的情况。 \[ K(x_i, x_j) = x_i^\top x_j \] 2. **多项式核函数** 多项式核可以捕捉更高阶的关系,其表达式如下所示: \[ K(x_i, x_j) = (\gamma x_i^\top x_j + r)^d \] 其中 \( \gamma > 0 \),\( d \) 是多项式的次数,而 \( r \) 则是一个常数偏移参数。 3. **径向基函数(RBF)** RBF核是实际应用中最常用的核之一,尤其适合解决复杂的非线性问题。它的数学表示为: \[ K(x_i, x_j) = \exp(-\gamma ||x_i - x_j||^2) \] 这里 \( \gamma > 0 \) 控制着决策边界的平滑程度。 4. **Sigmoid核函数** Sigmoid核类似于神经网络中的激活函数,具有以下形式: \[ K(x_i, x_j) = \tanh(\gamma x_i^\top x_j + r) \] 它有时被用于构建多层感知器模型。 5. **直方图交集核** 对图像识别等领域特别有用的一种特殊核——直方图交集核,计算两个样本之间的相似度基于它们各自属性值重叠部分的比例: \[ K(x_i, x_j) = \sum_{k=1}^{n}\min(x_{ik}, x_{jk}) \] #### 使用 LIBSVM 实现 SVM 的例子 下面展示如何利用 `LIBSVM` 库来训练带有特定核函数的支持向量机: ```python from sklearn.datasets import make_classification from sklearn.model_selection import train_test_split import svmutil as libsvm # 创建模拟数据集 X, y = make_classification(n_samples=100, n_features=2, n_informative=2, n_redundant=0, random_state=1) # 将数据划分为训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 转换为libsvm所需的格式 def convert_to_libsvm_format(data, labels): problem = libsvm.svm_problem(labels, data.tolist()) return problem problem = convert_to_libsvm_format(X_train, y_train) # 设置不同的核选项并训练模型 param_rbf = libsvm.svm_parameter('-t 2 -c 1 -g 0.1') # 使用RBF核 model_rbf = libsvm.svm_train(problem, param_rbf) param_poly = libsvm.svm_parameter('-t 1 -c 1 -g 0.1 -r 0 -d 3') # 使用多项式核 model_poly = libsvm.svm_train(problem, param_poly) ``` 上述代码片段展示了两种常见核的选择方式:RBF 和多项式核,并说明了如何调整相应的超参数以优化性能[^3]。 #### 总结 选择合适的核函数对于提升 SVM 模型的表现至关重要。每种核都有自己的适用场景,因此理解各种核的特点有助于更好地应对具体的应用需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

农民小飞侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值