机器学习技法--学习笔记03--Kernel技巧
背景
上一讲从对偶问题的角度描述了SVM问题,但是始终需要计算原始数据feature转换后的数据。这一讲,通过一个kernel(核函数)技巧,可以省去feature转换计算,但是仍然可以利用feature转换的特性。
什么是kernel
Kernel的其实就是将向量feature转换与点积运算合并后的运算,如下,
概念上很简单,但是并不是所有的feature转换函数都有kernel的特性。
Kernel化的SVM
在对偶化的SVM解中,有三个地方会使用到kernel
- 计算截距b
- 计算QP中的Q矩阵
- 预测分类
使用了kernel,w的具体值都无需计算,因为没有地方会直接使用w。这也是为什么上一讲花了那么大的精力描述对偶化的SVM解。
常见kernel
常见kernel有多项式,高斯和线性,各有利弊。
线性kernel
不做feature转换,直接使用。不需要使用对偶技巧,直接使用linear hard SVM解。
优点:计算效率高;结果解释性好。
缺点:需要数据线性可分
多项kernel
对x进行多项式展开,一般的形式为
其中a,b,Q为常量。
优点:相比线性kernel,对数据要求没有那么严格
缺点:需要选择的系数较多;Q太大会超出一些计算机的精度,一般Q<=3。
高斯Kernel
有些资料也称为RBF(Radial Base Function),一般形式为
其中a(>0)是常量。高斯kernel厉害的地方是可以将原始数据x映射到无线维度空间中,x下面取a=1的例子
上面的变化采用了Taylor展开,接着
其中特征转化为
这样,就完成了向无线维度转换,RBF是不是很厉害!
优点:调试的系数较少;比线性和多项式更强大,几乎可以适应所有数据;不容易出现计算精度问题
缺点:无线维度无法解释;太强大,容易过拟合;计算开销大。
总结
个人感觉,核函数是SVM画龙点睛之笔,真的很佩服发现kernel的科学家。在实际使用SVM的过程中,很大一部分精力可能就是选择kernel和相关系数。Kernel还可以自定义,但是需要满足一些条件,具体可以参考讲义相关部分。
机器学习技法--学习笔记03--Kernel技巧的更多相关文章
- 机器学习技法--学习笔记04--Soft SVM
背景 之前所讨论的SVM都是非常严格的hard版本,必须要求每个点都被正确的区分开.但是,实际情况时很少出现这种情况的,因为噪声数据时无法避免的.所以,需要在hard SVM上添加容错机制,使得可以容 ...
- 机器学习实战(Machine Learning in Action)学习笔记————03.决策树原理、源码解析及测试
机器学习实战(Machine Learning in Action)学习笔记————03.决策树原理.源码解析及测试 关键字:决策树.python.源码解析.测试作者:米仓山下时间:2018-10-2 ...
- OpenCV 学习笔记03 边界框、最小矩形区域和最小闭圆的轮廓
本节代码使用的opencv-python 4.0.1,numpy 1.15.4 + mkl 使用图片为 Mjolnir_Round_Car_Magnet_300x300.jpg 代码如下: impor ...
- OpenCV 学习笔记03 findContours函数
opencv-python 4.0.1 1 函数释义 词义:发现轮廓! 从二进制图像中查找轮廓(Finds contours in a binary image):轮廓是形状分析和物体检测和识别的 ...
- TensorFlow机器学习框架-学习笔记-001
# TensorFlow机器学习框架-学习笔记-001 ### 测试TensorFlow环境是否安装完成-----------------------------```import tensorflo ...
- 《软件调试的艺术》学习笔记——GDB使用技巧摘要
<软件调试的艺术>学习笔记——GDB使用技巧摘要 <软件调试的艺术>,因为名是The Art of Debugging with GDB, DDD, and Eclipse. ...
- C++ GUI Qt4学习笔记03
C++ GUI Qt4学习笔记03 qtc++spreadsheet文档工具resources 本章介绍创建Spreadsheet应用程序的主窗口 1.子类化QMainWindow 通过子类化QM ...
- SaToken学习笔记-03
SaToken学习笔记-03 如果排版有问题,请点击:传送门 核心思想 所谓权限验证,验证的核心就是一个账号是否拥有一个权限码 有,就让你通过.没有?那么禁止访问! 再往底了说,就是每个账号都会拥有一 ...
- Redis:学习笔记-03
Redis:学习笔记-03 该部分内容,参考了 bilibili 上讲解 Redis 中,观看数最多的课程 Redis最新超详细版教程通俗易懂,来自 UP主 遇见狂神说 7. Redis配置文件 启动 ...
随机推荐
- 一个关于AM335X比较全面的笔记博客
http://www.eefocus.com/marianna/blog/cate_18142_0.html
- [vb.net]XML File Parsing in VB.NET
Introduction Parsing XML files has always been time consuming and sometimes tricky. .NET framework p ...
- C# 基础(4)
Ref 按地址传递,引用传递:即可以往外返值,也可以对内传值. Out是用于传出值, Ref是双向的,即可以传入,也可以传出. 在传参过程中,如果参数有out,那么改变方法中参数的值,调用者方法中变量 ...
- weborm 简单控件
Label - 显示文字,编译后是spanLiteral - 显示文字,编译后没有形成元素 只是文字 一般用来输出 js代码内容 TextBox - 文本框 TextMode -普通文本框 singl ...
- jsp_属性范围_application
如果希望设置一个属性,可以让所有用户看得见,则可以将属性范围设置成application,这样属性即可以保存在服务器上. 下面写一个小例子来验证一下: (1)application_demo.jsp ...
- c# 验证码类
using System; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; us ...
- 图层的transform属性
Main.storyboard // // ViewController.m // 7A11.图层的transform属性 // // Created by huan on 16/2/4. // ...
- 常用的sql语言基础(1)
数据文件:存放数据不能随便删除查看数据方式:select name from v$datafile;select file_name from dba_data_file; 控制文件:是一个二进制文件 ...
- Nim教程【三】
这是国内第一个关于Nim的系列教程 (至少我百度和必应是没有找到类似的教程) 先说废话 有人说 Golang的编译器/工具链也学互联网行业跟风拿用户当测试,简直一点素质没有. 还有人说 Go社区的风气 ...
- Entity Framework后台采用分页方式取数据与AspNetPager控件的使用
本文是一个对AspNetPager控件使用的笔记! 有关AspNetPager控件可以查看杨涛主页.这是一个开放的自定义ASP.NET控件,支持各种自定义的数据分页方式,使用很方便,而且功能也很强大, ...