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 类 ...
随机推荐
- TCP/IP学习笔记5--网络的构成要素
人的灵魂来自一个完美的家园,那里没有任何污秽和丑陋,只有纯净和美丽.----大鱼海棠 1.通信媒介与数据链路 计算机之间通过各种电缆相互连接. 2.网卡 任何一台计算机接入网络都需要网卡,又称网络适配 ...
- PHP设计模式 - 合成模式
组合模式(Composite Pattern)有时候又叫做部分-整体模式,用于将对象组合成树形结构以表示“部分-整体”的层次关系.组合模式使得用户对单个对象和组合对象的使用具有一致性. 常见使用场景: ...
- tetetet
http://www.wuwenhui.cn/2623.html http://www.360doc.com/content/16/1104/09/36005694_603810507.shtml
- 你应该掌握linux中Bash命令的一些快捷方式
在本文中,我们将分享许多对任何Linux用户都有用的Bash命令行快捷方式.这些快捷方式可以快速地执行某些动作,例如访问和运行先前执行的命令,打开编辑器,在命令行上编辑/删除/更改文本,移动光标,控制 ...
- SQL——DELETE(删)
一.DELETE语句的基本用法 DELETE语句用于删除表中的记录. DELETE语句语法: DELETE FROM 表名 WHERE 条件语句; 演示student表: 删除student表最后一行 ...
- python基础 — 循环重新输入
后续完善各种循环案例 while True: try: str_num = input('input a number:') num = float(str_num) print("你输入的 ...
- 关于django操作orm的一些事--反向生成orm、连接多个数据库
1. django反向生成orm的类代码 使用命令python manage.py inspectdb > app01/models.py,注意,我这里的app01是app的名字. 2.djan ...
- Android--TextView第一个单词大写
自定义TextView: public class FirstBoldTextView extends TextView { private boolean firstWordBold = false ...
- ssh远程连接一段时间会失效的问题
话不多讲,先说明我的环境和远程环境. 本地环境:Ubuntu18.04(client) 远程环境:Ubuntu16.04(server) 我的一个小项目部署在百度云的Ubuntu服务器上,需要经常使用 ...
- The Day Two 找到一个具有最大和的连续子数组,返回其最大和
""" 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 示例: 输入: [-2,1,-3,4,-1,2,1,-5, ...