12.支持向量机

觉得有用的话,欢迎一起讨论相互学习~Follow Me

12.6SVM总结

推荐使用成熟的软件包

用以解决 SVM 最优化问题的软件很复杂,且已经有研究者做了很多年数值优化。因此强烈建议使用高优化软件库中的一个,而不是尝试自己落实一些框架。有许多好的软件库,NG用得最多的两个是 liblinear 和 libsvm

归一化处理

Note 无论使用使用何种模型进行拟合,原始输入数据都需要进行归一化处理

需要指定的参数

即使用高度优化的软件包,有些参数还是需要自己做出指定的。

正则化参数C

正则化参数C的选定

  • 正则化参数C和神经网络正则化参数\(\lambda\)的倒数\(\frac{1}{\lambda}\)类似

    • 大的C对应于小的\(\lambda\),这意味着不使用正则化,会得到一个低偏差(bias),高方差(variance)的模型,则会更加倾向于 过拟合
    • 小的C对应于大的\(\lambda\),这意味着更多的正则化,会得到一个高偏差(bias),低方差(variance)的模型,则会更加倾向于 欠拟合

核的选定

Note 不是所有提出来的 相似度函数 都是有效的核函数,所有核函数都需要满足 默赛尔定理(Mercer's Theotem) ,因为为了有效的求解参数\(\theta\) , SVM软件包中使用了许多成熟的优秀的数值优化技巧,而这些技巧的使用条件即是 默赛尔定理(Mercer's Theotem)

  1. 没有核(线性核函数) 如果满足\(\theta^{T}x\ge0\)则y=1;即\(\theta_0+\theta_1x1+...+\theta_nx_n\ge0\) ,通常适用于有 大量的特征但是样本数据较少 的情况下
  2. 高斯核函数(Gaussian kernel) \[f_{i}=exp(-\frac{||x-l^{(i)}||^{2}}{2\sigma^2}),where\ \ l^{(i)}=x^{(i)}\] 需要选定参数\(\sigma^2\) ,通常适用于有 特征少但是样本数据多 的情况下
  3. 多项式核函数(Polynomial kernel) 多项式核函数一般满足\((x^{T}l+常数)^{指数}\)的形式,其中\((x^{T}l)^2,(x^{T}l)^{3},(x^{T}+1)^{3},(x^{T}+5)^4\) 都是其常见的形式。通常的效果比高斯核要差,且x和l都是 非负数 的情况下,以保证内积值永远不会是负数。
  4. 多项式核函数(String Kernel) 通常用于输入数据是文本字符串形式的情况下
  5. 卡方核函数(chi-square kernel)
  6. 直方相交核函数(histogram intersection kernel)

多分类(Multi-class classification)

  1. 直接使用 SVM软件包 里面都内置了多类分类的功能
  2. 或使用一对多的方法,如果有K个类,就需要K个二分类模型,把每一类从其他类中分出来,即每个模型都把原始样本分为两类 目标类-其他类

逻辑回归和支持向量机

从逻辑回归模型,我们得到了支持向量机模型,在两者之间,我们应该如何选择?
n 为特征数(特征数可指为原始数据中的属性值或人为够早的特征),m 为训练样本数

  1. 如果相较于 m 而言,n 要大许多,即训练集数据量不够支持我们训练一个复杂的非线性模型,我们选用逻辑回归模型或者不带核函数的支持向量机。
  2. 如果 n 较小,而且 m 大小中等,例如 n 在 1-1000 之间,而 m 在 10-10000 之间,使用高斯核函数的支持向量机。
  3. 如果 n 较小,而 m 较大,例如 n 在 1-1000 之间,而 m 大于 50000,则使用支持向量机会非常慢,解决方案是创造、增加更多的特征,然后使用逻辑回归或不带核函数的支持向量机。

    神经网络和支持向量机

  • 值得一提的是,神经网络在以上三种情况下都可能会有较好的表现,但是训练神经网络可能 非常慢(这是2014年的教程,所以现在NG当然不会这么说) ,而且容易陷入局部最优解,选择支持向量机的原因主要在于它的代价函数是凸函数,不存在局部最小值,而且优化过程会比神经网络快得多。
  • Note Ng认为算法的选择固然重要,但是数据的规模,数据的处理,特征的提取,调整模型的参数这些过程更加重要

[吴恩达机器学习笔记]12支持向量机6SVM总结的更多相关文章

  1. [吴恩达机器学习笔记]12支持向量机5SVM参数细节

    12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.5 SVM参数细节 标记点选取 标记点(landma ...

  2. [吴恩达机器学习笔记]12支持向量机3SVM大间距分类的数学解释

    12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.3 大间距分类背后的数学原理- Mathematic ...

  3. [吴恩达机器学习笔记]12支持向量机2 SVM的正则化参数和决策间距

    12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.2 大间距的直观理解- Large Margin I ...

  4. [吴恩达机器学习笔记]12支持向量机1从逻辑回归到SVM/SVM的损失函数

    12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.1 SVM损失函数 从逻辑回归到支持向量机 为了描述 ...

  5. [吴恩达机器学习笔记]12支持向量机4核函数和标记点kernels and landmark

    12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 12.4 核函数与标记点- Kernels and landmarks 问题引入 如果你有以下的训练集,然后想去拟合其能够分开 ...

  6. 吴恩达机器学习笔记(六) —— 支持向量机SVM

    主要内容: 一.损失函数 二.决策边界 三.Kernel 四.使用SVM (有关SVM数学解释:机器学习笔记(八)震惊!支持向量机(SVM)居然是这种机) 一.损失函数 二.决策边界 对于: 当C非常 ...

  7. 吴恩达机器学习笔记45-使用支持向量机(Using A SVM)

    本篇我们讨论如何运行或者运用SVM. 在高斯核函数之外我们还有其他一些选择,如:多项式核函数(Polynomial Kernel)字符串核函数(String kernel)卡方核函数( chi-squ ...

  8. Coursera-AndrewNg(吴恩达)机器学习笔记——第一周

    一.初识机器学习 何为机器学习?A computer program is said to learn from experience E with respect to some task T an ...

  9. Machine Learning——吴恩达机器学习笔记(酷

    [1] ML Introduction a. supervised learning & unsupervised learning 监督学习:从给定的训练数据集中学习出一个函数(模型参数), ...

随机推荐

  1. kettle_Spoon 修改共享DB连接带汉字引发的错误

    win10下: kettle_Spoon 修改共享DB连接带汉字引发的错误: Unexpected problem reading shared objects from XML file : nul ...

  2. 2018软工实践—Alpha冲刺(7)

    队名 火箭少男100 组长博客 林燊大哥 作业博客 Alpha 冲鸭鸭鸭鸭鸭鸭鸭! 成员冲刺阶段情况 林燊(组长) 过去两天完成了哪些任务 协调各成员之间的工作 学习MSI.CUDA 试运行软件并调试 ...

  3. 第22章 软件安装:源码与Tarball

    开放源码的软件安装与升级简介 什么是开放源码.编译程序与可执行文件 开放源码:程序代码,写给人类看的程序语言 编译程序:将源码编译成机器能看得懂的语言 可执行文件:经过编译变成二进制程序后机器看得懂可 ...

  4. Visual C++ 8.0对象布局

    哈哈,从M$ Visual C++ Team的Andy Rich那里又偷学到一招:VC8的隐含编译项/d1reportSingleClassLayout和/d1reportAllClassLayout ...

  5. spring复杂数据类型传递

    1.VO对象与PO对象的区别: PO(persistant object) 持久对象:通常对应数据模型(数据库),本身还有部分业务逻辑的处理.可以看成是与数据库中的表相映射的java对象.最简单的PO ...

  6. jQuery之_元素滚动

    对应的知识点铺垫,但是有一个很重要的问题就是兼容IE和chorme的 1. scrollTop(): 读取/设置滚动条的Y坐标2. $(document.body).scrollTop()+$(doc ...

  7. 敏捷冲刺DAY6

    一. 每日会议 1. 照片 2. 昨日完成工作 3. 今日完成工作 4. 工作中遇到的困难 对于可视控件,是能进行设计的,但是对于不可视组件,比如AdoConnection怎么才能设计.但是我看del ...

  8. Delphi通过ADO链接数据库及对数据库的增加,删除,修改,读取操作实例教程4

    ADO是一种程序对象,用于表示用户数据库中的数据结构和所包含的数据.ADO(ActiveXDataObjects,ActiveX数据对象)是Microsoft提出的应用程序接口(API)用以实现访问关 ...

  9. a标签不能嵌套

    <a href='http://www.baidu.com'> <a href='http://www.google.com'></a> </a> &l ...

  10. 第100天:CSS3中animation动画详解

    CSS3属性中有关于制作动画的三个属性:Transform,Transition,Animation: 一.Animation定义动画 CSS3的Animation是由“keyframes”这个属性来 ...