SVM(三):非线性支持向量机

简介: SVM(三):非线性支持向量机

3. 非线性SVM



3.1 问题定义


现实任务中,训练样本经常不是线性可分的,即原始样本空间中并不存在一个能正确划分两类样本的超平面。



20200311233452707.png


对于这样的问题,基于Mercer核展开定理,通过内积函数定义的非线性变换,将样本从原始空间映射到一个高维特征空间(Hibbert空间),使得样本在这个高维特征空间内线性可分(升维线性化)。


20200311233621103.gif


令ϕ ( x ) 表示将x 映射后的特征向量,在特征空间中划分超平面对应的模型可表示为


image.png


优化目标为

image.png

其对偶问题为


image.png

该问题和线性可分SVM的优化目标函数的区别仅仅是将内积x i x j 替换为ϕ ( x i ) T ϕ ( x j )


ϕ (  x i ) T ϕ (x j )是x i x j映射到特征空间后的内积,由于特征空间维数很高,甚至是无穷维,因此直接计算ϕ ( x i ) T ϕ ( x j )通常是困难的。


如对于一个2维特征的数据(X1,X2) ,需要将其映射到5维( 1 ,image.png)来做特征的内积。


3.2 核函数


假设ϕ 是一个从低维的输入空间χ(欧式空间的子集或者离散集合)到高维的希尔伯特空间H的映射。如果存在函数K ( , ) 对于任意x i x j∈χ都有:


image.png

x i x j在特征空间的内积等于它们在原始样本空间中通过函数K ( , ) 计算的结果,则称K ( , )为核函数。

核函数使得计算在低维特征空间中进行,避免了高维特征空间中的巨大计算量,同时还利用了高维空间线性可分的特性。


对于任意 x i∈ χ , i = 1 , 2 , 3... m ,i=1,2,3...m,K ( ⋅ , ⋅ ) 是正定核函数,当且仅当K (x i ,x j )对应的Gram矩阵K = [ K (x i  , x j ) ] 为半正定矩阵。


20200311233940278.png


径向基函数核(RBF,Radial basis Function)又称高斯核。

相关文章
|
机器学习/深度学习 运维 算法
Machine Learning机器学习之向量机(Support Vector Machine,SVM)
Machine Learning机器学习之向量机(Support Vector Machine,SVM)
|
消息中间件 存储 监控
Flume+Kafka整合案例实现
Flume+Kafka整合案例实现
569 1
|
机器学习/深度学习 算法 Python
Python高级算法——支持向量机(Support Vector Machine,SVM)
Python高级算法——支持向量机(Support Vector Machine,SVM)
1232 2
|
机器学习/深度学习 分布式计算 算法
深入理解SVM中的核函数及其应用
深入理解SVM中的核函数及其应用
598 92
|
JSON 前端开发 安全
前端开发中的跨域问题及解决方案
在前端开发中,跨域是一个常见但又令人头疼的问题。本文将深入探讨跨域产生的原因以及一些常见的解决方案,帮助开发者更好地理解和处理跨域情况。
|
机器学习/深度学习 定位技术 Python
深入理解线性回归模型的评估与优化方法
深入理解线性回归模型的评估与优化方法
|
数据处理 Python
熵值法计算权重
熵值法计算权重是一种基于信息论的方法,用于多指标综合评价。通过计算各指标的信息熵,反映指标的变异程度,从而确定其在综合评价中的权重。熵值越小,表示信息量越大,指标的重要性越高。该方法适用于样本数据较少的情形,能有效避免主观因素的影响。文中详细介绍了熵值法的原理、计算步骤及Python实现代码。
2456 1
|
算法 索引
聊聊字典编码(上)
聊聊字典编码(上)
1367 0
聊聊字典编码(上)
python项目 以docker形式打包部署全流程
在很久很久以前,我已经听过Docker的大名,当时服务着急上线虽然考虑过用Docker来部署我的服务,但是因为赶期的原因放弃了。 这两天因为华为云服务器到期,而且阿里云服务器优惠力度特别大的原因,我要把华为云服务器里的工程迁移到阿里云。 迁移的过程中,大量的时间精力浪费在了重装python,加载依赖,迁移项目,配置端口等环境配置的工作上。 我在想,如果当时用了Docker部署,我至于受这气?