引言:

对于SVM的核函数,许多初学者可能在一开始都不明白核函数到底是怎么做到从二维空间映射到三维空间(这里我们特征空间以二维为例),因此本文主要讲解其中一种核函数-------高斯核函数作为介绍,另外感谢Andrew Ng在网易云课堂深入浅出的讲解,不但加深了我的理解,也为我写这篇博客提供了不少素材。


代价函数:
相比于Logistic Regression的代价函数:

min1m[∑i=1my(i)(−loghθ(x(i)))+(1−y(i))((−log(1−hθ(x(i))))]min\frac1m[\sum_{i=1}^m{y^{(i)}(-log{h_\theta(x^{(i)})}) + (1-y^{(i)})((-log(1-h_\theta(x^{(i)})))}]minm1​[∑i=1m​y(i)(−loghθ​(x(i)))+(1−y(i))((−log(1−hθ​(x(i))))]+λ2m∑j=1nθj2\frac{\lambda}{2m}\sum_{j=1}^n{\theta_j^2}2mλ​∑j=1n​θj2​

SVM的代价函数只是稍微进行修改:

minC[∑i=1my(i)cost1(θTx(i))))minC[\sum_{i=1}^m{y^{(i)}cost_1(\theta^Tx^{(i)}))})minC[∑i=1m​y(i)cost1​(θTx(i))))+ (1−y(i))cost0(θTx(i))(1-y^{(i)})cost_0(\theta^Tx^{(i)})(1−y(i))cost0​(θTx(i))+12∑j=1nθj2\frac12\sum_{j=1}^n{\theta_j^2}21​∑j=1n​θj2​

其中hθ(x(i))=11+e−θTxh_\theta(x^{(i)})=\frac1{1+e^{-\theta^Tx}}hθ​(x(i))=1+e−θTx1​其实也就是sigmod函数。
而cost函数可以由下图中的粉线表示:

当然其中的转折点是人为定义的,这里选择以1为转折点。
此外,我们还能发现,相比于Logistic regression,SVM的优化函数只不是过1λ\frac1{\lambda}λ1​换成了CCC和修改了costcostcost函数,其实差别并不大。当然,我们也能从老师PPT的图中可以看出sigmod函数的大致走向。
当然啦,如果你看不懂这个也没关系,这与下面的高斯核函数的理解上联系并不紧密。


下面先给一个高斯核的效果图,让大家先有一个大致的理解

此图来自于github上的CS299的知识图谱总结


为了引出核函数的作用,我们先来观察决策边界为非线性的情况:

并且我们假设认为

当θTx(i)>=1\theta^Tx^{(i)} >= 1θTx(i)>=1时y=1y=1y=1为图中红色X
                                                          否则,y=0y=0y=0为图中蓝色O
要想拟合这个非线性的决策边界,其中有一种方法就是用高阶函数去拟合这个特征,事实上,这个方案是并不可行,因为这样做存在一定的问题:从理论上来说,我们有很多不同的特征去选择来拟合这个边界(选择起来是一个问题)或者可能会存在比这些高阶多项式更好的特征,因为我们并不知道这些高阶多项式的组合是否一定对模型的提升有帮助

引入高斯核函数:
首先我们先来看一下二维正态分布的图像

从图像中我们可以看出,离中心点越近,函数值就越接近于1。
其公式为:
y=e(−(x1−μ)2+(x2−μ)22σ2)y = e^{(-{\frac{(x_1-\mu)^2+(x_2-\mu)^2}{2\sigma^2}})}y=e(−2σ2(x1​−μ)2+(x2​−μ)2​)

由指数函数的特征,我们可以看到,如果指数部分为接近0,那么yyy就会接近1;如果指数部分越小,那么yyy就会越接近于0。
讲到这里,是否有点熟悉的感觉?没错,之前我在讲标签判定的时候,说到θTx(i)\theta^Tx^{(i)}θTx(i)决定着最后类别的确定,那么试想一下,如果我们把2维平面上的点,映射到到上图中,那么从上往下看就会看到类似于下面这张同心圆的图:

因此以任意一种颜色的同心圆作为决策边界,我们都可以完成对数据集的简单非线性划分。那么问题来了,如何映射到高维空间上去呢?------------------高斯核函数
我们可以在二维空间中构造3个新特征,如下图(PS:这是只是打个比方,现实中并不一定是3个特征)

然后重新定义我们的假设:

当θTf(x(i))>=1\theta^Tf(x^{(i)}) >= 1θTf(x(i))>=1时y=1y=1y=1为图中红色X
否则,y=0y=0y=0为图中的 蓝色O

其中f(x(i))f(x^{(i)})f(x(i))就为我们的高斯核函数f(x(i))=e(−∣∣xi−li∣∣22σ2)f(x^{(i)})=e^{(-{\frac{{||x_i - l_i||}^2}{2\sigma^2}})}f(x(i))=e(−2σ2∣∣xi​−li​∣∣2​)

那么就在这个平面上而言,越是接近于这三个点的点,他由通过高斯核函数对3个特征点进行计算时,结果之和就越容易大于1。


高斯核的实现代码:

# 高斯核的实现方法
def RBF(x, L, sigma):'''x: 待分类的点的坐标 L: 某些中心点,通过计算x到这些L的距离的和来判断类别'''return np.exp(-(np.sum((x - L) ** 2)) / (2 * sigma**2))

因为如果xix_ixi​和lil_ili​越是接近,2范数就越趋向于0,则指数函数趋向于1,而对于那些别叫远的点而言,指数项中的∣∣xi−li∣∣2{||x_i - l_i||}^2∣∣xi​−li​∣∣2则会越大,前面添上"−-−"号,就越小,那么有指数函数的变化可得,结果之和会小于1。
所以到这里,我们便可以把二维平面上的数据点,映射到三维空间中,从而达到了可以进行复杂的非线性决策边界的学习。


Note:
对于高斯核函数参数的选择,我们可以参考下图

此图来自于林轩田教授的机器学习技法课程

也就是说我们在选择σ\sigmaσ时,尽量不要选择过小的值,否则容易导致过拟合!


如果觉得我有地方讲的不好的或者有错误的欢迎给我留言,谢谢大家阅读(点个赞我可是会很开心的哦)~

SVM---通俗易懂图解高斯核函数及实现相关推荐

  1. SVM使用高斯核函数(RBF)时的超参数C和gamma如何选择

    C C是惩罚系数,即对样本分错的宽容度.C越高,说明越不能容忍出现分错,容易过拟合.C越小,容易欠拟合.C过大或过小,泛化能力变差. gamma 千万要注意地是这个,否则容易死记硬背,即gamma和σ ...

  2. 高斯核函数python代码_单类SVM:SVDD

    话接上文(SVM的简单推导),这篇文章我们来看单类SVM:SVDD.可能大家会觉得很奇怪,我们为什么需要单分类呢?有篇博客举了一个很有意思的例子. 花果山上的老猴子,一生阅猴无数,但是从来没有见过其它 ...

  3. Tensorflow用SVM(高斯核函数)分类非线性数据

    如果想分割非线性数据集,该如何改变线性分类器映射到数据集?答案是,改变SVM损失函数中的核函数. # Illustration of Various Kernels #---------------- ...

  4. SVM(核函数、高斯核函数RBF)

    转载自博客园:https://www.cnblogs.com/volcao/p/9465214.html SVM(核函数.高斯核函数RBF) 一.核函数(Kernel Function) 1)格式 K ...

  5. 机器学习--SVM(支持向量机)核函数原理以及高斯核函数

    最近小小地研究了一下SVM,发现这个算法还是相当有意思,今天来给大家讲讲其原理. 首先假设每个样本的特征值为X1.X2...到Xn,即有n个特征值.θ1.θ2.θ3...θn为对应权值. 那么要将上图 ...

  6. 透彻理解高斯核函数背后的哲学思想与数学思想

    https://www.toutiao.com/a6653427986718523917/ 数据点转换到高维空间后,原始特征无关紧要.仅仅计算测试数据与支持向量的点积,支持向量由SVM优化算法选择的特 ...

  7. 机器学习笔记(二十八):高斯核函数

    凌云时刻 · 技术 导读:核函数是机器学习算法中一个重要的概念.简单来讲,核函数就是样本数据点的转换函数.这一节我们来看看应用非常广泛的一个核函数,高斯核函数. 作者 | 计缘 来源 | 凌云时刻(微 ...

  8. SVM(三) 核函数

    引 今天我们讲解一下SVM的核函数,那么什么是核函数呢?我也不知道啊,但是我们可以从普通的回归任务出发.假设我们有这样一个式子: \begin{equation} \begin{split} h_\t ...

  9. 核函数 高斯核函数,线性核函数,多项式核函数

    核函数是我们处理数据时使用的一种方式.对于给的一些特征数据我们通过核函数的方式来对其进行处理.我们经常在SVM中提到核函数,就是因为通过核函数来将原本的数据进行各种方式的组合计算,从而从低维数据到高维 ...

  10. 机器学习之支持向量机实例,线性核函数 多项式核函数 RBF高斯核函数 sigmoid核函数

    文章目录 支持向量机实例 1.线性核函数 2.多项式核函数 3.RBF高斯核函数 4.sigmoid核函数 代码: 结果: 支持向量机实例 1.线性核函数 def test_SVC_linear(): ...

最新文章

  1. 2021计算机技能高考考纲,2021年湖北省技能高考技能考试大纲(计算机类)(16页)-原创力文档...
  2. Ubuntu 使用Git 使用
  3. Python 可视化库
  4. 在技​​术团队中发展的7个关键技能
  5. mysql 搜索正则表达式_[MySQL] 用正则表达式进行搜索
  6. #1064 - You have an error in your SQL syntax; version for the right syntax to use near '' at line
  7. Netty工作笔记0045---Netty模型梳理
  8. Python---字符串与列表
  9. 如何下载和安装SQL Server数据库实验助手(DEA)
  10. ‘module‘ object has no attribute ‘computation‘
  11. excel计算机二级考试试题,计算机二级考试Excel操作考试题.doc
  12. imx6ull的boot, 之我的理解
  13. java使用oshi获取硬件信息,包括cpu温度
  14. 服务器sas系统盘损坏,磁盘阵列中SCSI、SAS硬盘由于一块或者多块有坏道引起操作系统产生如下故障...
  15. Android系统关于音量相关的控制-初识
  16. 服务器的组件中支持冗余的包括,服务器冗余电源的作用
  17. Python库——Faker
  18. 51个SIG组,持续12小时在线讨论…openEuler 开源社区这群人为何如此「活力无限」...
  19. 在windows中使用bat脚本获取linux服务器文件
  20. SitePoint播客#94:新年快乐!

热门文章

  1. 日语入门选什么书好?
  2. 个人或公司微信公众号迁移转让流程,公证需要资料,订阅号服务号转移教程,怎么迁移
  3. pdf打印机怎么把PDF文件打印成JPG
  4. 入学人数突破1000人! 阿里云大学云学院,开启创新育才实践之路!
  5. Maven的setting配置详解
  6. LPDDR4的ZQ 校准
  7. css解决打印不加粗BUG
  8. 偶极子天线馈电及倒V天线
  9. qt5 开发及实例(第4版)_张厚粲现代心理与教育统计学第4版配套章节题库
  10. 北航计算机专业报录比,北京航空航天大学考研报录比数据查询