SVM: 用kernels(核函数)来定义新的features,避免使用多项式,高斯kernel
应用kernels来进行非线性分类
非线性分类:是否存在好的features的选择(而不是多项式)--f1,f2,f3....
上图是一个非线性分类的问题,前面讲过,我们可以应用多项式(features)来构造hypothesis来解决复杂的非线性分类问题。
我们将x1,x2,x1x2.....替换成f1,f2,f3......,那么是否有更好的features的选择呢(而不是这些多项式做为features),因为我们知道以这些多项式做为features,次数较高,计算较复杂.
使用Kernel(核函数)来计算新的features
假设现在我们有三个features: x0,x1,x2;我们选择三个标识点(landmarks l(1),l(2),l(3)),通过相似度函数,也称为核函数来计算x与三个标识点之间的相似度
这儿我们使用的核函数是Gaussian(高斯)kernels,核函数有很多种,这儿我们只是选取了其中的一种
核函数也记为小写k(x,l(i)),将旧的features(x0,x1,x2)通过核函数与标识点(landmarks)映射成新的features---f1,f2,f3
Kernels是怎么度量这种相似度的
在这个例子中,我们忽略了x0(截距),因为x0总是等于1.
由上面的公式可以看出,当x与我们的一个landmark很近时,它们之间的欧式距离约等于0,这时高斯核函数的值约为1(可以理解为与这个landmark相似)
当x与我们的landmark相距很远时,它们之间的欧式距离很大,这时高斯核函数的值约为0(可以理解为与这个landmark不相似)
这样我们通过三个landmarks(l(1),l(2),l(3))来生成三个新的features: f1,f2,f3.这三个features分别用来度量样本点是否与这三个landmarks是否相似(1/0)
画图来看核函数(与landmarks的相似度)
假如现在我们的一个landmark为(3,5),σ2=1,则左边为f1的图,可以看到当x=(3,5)时(即与landmark相等时),f1的值达到最大=1,随着x离(3,5)越来越远,f1的值下降,直到为0(即相距很远)。下面的那个图为上面的图的等值线。
σ2为高斯核函数的parameter(参数),它可以用来调整下降的速度。如当σ2=0.5时,图像会更陡,说明下降上升得越快;当σ2=3时,图像会更平缓,说明下降上升得越慢。
使用了新的features(利用kernel函数)后如何进行预测(画出非线性decision boundary)
在SVM中的hypothesis是直接对结果进行预测,如上图所示,当θTx>=0时,hypothesis = 1;
利用某种学习算法求得了它的parameters(θ),分别为θ0=-0.5,θ1=1,θ2=1,θ3=0
当我的x(trainning/crossvalidation/test data)距离landmark1(l1)很近时,这时hypothesis=0.5>0,预测值为1;
当我的x(trainning/crossvalidation/test data)距离landmark2(l2)很近时,这时hypothesis=0.5>0,预测值为1;
当我的x(trainning/crossvalidation/test data)距离landmark1(l1)和landmark2(l2)都很远时,这时hypothesis=-0.5<0,预测值为0;
这样我们就可以画出decision boundary大致如上图所示,在红色框里面的点,预测值为1;在框外的点,预测值为0;这样我们就画出了一个非线性的决策边界
那么我们如何选择landmarks呢?以及除了高斯核函数外有其它的核函数吗?---之后会提到
总结
- Kernel(核函数)是用来计算新的features的,从而避免在非线性较复杂的问题时直接使用多项式来做为features(使用多项式计算较复杂)
- 高斯核函数通过x与landmarks的距离远近来度量这种相似度(越近表明越相似越接近于1,越远表明越不相似,越接近于0),取值范围在0-1之间。这样就映射出了新的features(这种features表明与landmarks的相似的度量)
SVM: 用kernels(核函数)来定义新的features,避免使用多项式,高斯kernel的更多相关文章
- SVM: 使用kernels(核函数)的整个SVM算法过程
将所有的样本都选做landmarks 一种方法是将所有的training data都做为landmarks,这样就会有m个landmarks(m个trainnign data),这样features就 ...
- SVM(三)—Kernels(核函数)
(整理自AndrewNG的课件,转载请注明.整理者:华科小涛@http://www.cnblogs.com/hust-ghtao/) 内容整理中...
- 【机器学习算法-python实现】svm支持向量机(3)—核函数
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/gshengod/article/details/24983333 (转载请注明出处:http://b ...
- SVM为什么需要核函数
生存?还是毁灭?——哈姆雷特 可分?还是不可分?——支持向量机 之前一直在讨论的线性分类器,器如其名(汗,这是什么说法啊),只能对线性可分的样本做处理.如果提供的样本线性不可分,结果很简单,线性分类器 ...
- SVM: 实际中使用SVM的一些问题
使用SVM包来求θ,选择C与核函数 我们使用已经编写好的软件包(这些软件包效率高,用得多,是经无数人证明已经很好的可以使用的软件包)来求θ,而不是自己去编写软件来求它们(就像我们现在很少编写软件来求x ...
- Coursera 机器学习 第7章 Support Vector Machines 学习笔记
7 Support Vector Machines7.1 Large Margin Classification7.1.1 Optimization Objective支持向量机(SVM)代价函数在数 ...
- [Scikit-learn] 1.4 Support Vector Machines - Linear Classification
Outline: 作为一种典型的应用升维的方法,内容比较多,自带体系,以李航的书为主,分篇学习. 函数间隔和几何间隔 最大间隔 凸最优化问题 凸二次规划问题 线性支持向量机和软间隔最大化 添加的约束很 ...
- [Scikit-learn] 1.4 Support Vector Regression
SVM算法 既可用于回归问题,比如SVR(Support Vector Regression,支持向量回归) 也可以用于分类问题,比如SVC(Support Vector Classification ...
- 机器学习:SVM(核函数、高斯核函数RBF)
一.核函数(Kernel Function) 1)格式 K(x, y):表示样本 x 和 y,添加多项式特征得到新的样本 x'.y',K(x, y) 就是返回新的样本经过计算得到的值: 在 SVM 类 ...
随机推荐
- 小程序云函数,解决接口https问题
本实例只是简单记录http请求 1,云函数如下 // 云函数入口函数 exports.main = async (event, context) => { let req = await got ...
- hdu1016 Prime Ring Problem【素数环问题(经典dfs)】
Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- flink linux安装 单机版
1.下载二进制的Flink,根据你喜欢的Hadoop/Scala版本选择对应的Flink版本. https://flink.apache.org/downloads.html2.选择存放目录 解压 f ...
- Spring Cloud Alibaba学习笔记(22) - Nacos配置管理
目前业界流行的统一配置管理中心组件有Spring Cloud Config.Spring Cloud Alibaba的Nacos及携程开源的Apollo,本文将介绍Nacos作为统一配置管理中心的使用 ...
- js注意点
1.在JS中:var a=''; 则 a==0或a==false 结果都为true; 如果是“====” 则为false
- 2.4_Database Interface ODBC数据库驱动程序类型(单层与多层)
两大类:单层驱动程序和多层驱动程序 1.单层数据库驱动程序 早期的xBASE数据库系统的驱动程序就属于单层驱动程序. 单层驱动程序不仅要处理ODBC函数调用,还要解释执行SQL语句,执行数据库管理系统 ...
- karma mocha angular angular-mock 测试
describe('工具方法测试', function () { var utilsModule; beforeEach(function () { module('Admin'); // modul ...
- js造成内存泄漏的几种情况
1.介绍js的垃圾回收机制 js的垃圾回收机制就是为了防止内存泄漏的,内存泄漏的含义就是当已经不需要某块内存时这块内存还存在着,垃圾回收机制就是间歇的不定期的寻找到不再使用的变量,并释放掉它们所指向的 ...
- Bootstrap框架 简单使用
目录 Bootstrap框架 简单使用 什么是Bootstrap 下载 Bootstrap 项目结构 Bootstrap 简单使用 表格格式 Bootstrap 按钮颜色 尺寸 Bootstrap框架 ...
- SuperTab
Tab快捷键提示功能 下载 http://www.vim.org/scripts/script.php?script_id=1643 安装 # vi supertab.vmb : UseVimball ...