【Machine Learning】笔记:SVM
来源:互联网 发布:捷通华声语音合成软件 编辑:程序博客网 时间:2024/06/06 17:09
课程来自 Coursera 上 Andrew Ng 的 machine learning 第7周的内容。
代价函数
Logistic regression 要做的事情是:
从它出发,将代价函数 cost function 换掉,移除
Large Margin Classifier
如果
此时,SVM 就相当于最大间隔分类器,但这样的分类器对异常值很敏感。
当
Kernal
如果要训练出一个非线性边界,可能将会使用
核函数
下面是一个构造
这里的
但是,我们怎么得到这些 landmarks?怎么选择这些 landmarks?还有没有其他的相似度函数?
怎样选择 landmarks?
一种方法是,将训练集中每一个样本点都作为一个 landmarks,这样就有
在核函数下的优化目标
在经过特征转换之后,SVM 的优化目标是:
这里的
为什么不能将核函数应用到其他一些算法如 logistic regression 上?如果用了,会使它的运行变得很慢,只有在 SVM 中,才会有一些计算技巧,可以提高效率。
实现 SVM
老师推荐直接用成熟的软件包,如 liblinear、libsvm 等来实现。在使用时,需要提供这些一些信息:
- 参数
C 核函数,有这样一些选择:
- 可以选择不用核函数,相当于是 linear kernal,当在高维空间中,数据量又不够时,可以用它,会使边界尽量简单。
- 高斯核函数,当特征数不太多而数据量足够时,可以使用。一些软件可能需要自己实现一个核函数并传入。在使用高斯核函数之前,如果不同特征的数值相差很大,最好使用 feature scaling 归一化.
- Polynomial kernal:
k(x,l)=(xTl+constant)degree ,通常只用于当x 和l 的每个维度都大于0时。 - String kernal. 当输入是字符串时,可能会用。
- Chi-square kernal.
- Histogram intersection kernal.
不是随便写一个核函数都是有效的,所有的核函数都要满足 Mercer’s Theorem,否则 SVM 算法无法有效求解。一般只有线性核函数和高斯核函数比较常用,其他核函数极少使用。
还有一些细节,比如在多分类任务中该怎么作出两两分类之间的边界?
一般来说,软件包中都有内置的多分类算法,如果没有,可以用 one-vs.-all 的做法,对每个分类
Logistic regression vs. SVM
什么时候用 logistic regression?什么时候用 SVM?
- 当特征数很大(相对于样本个数来说)的时候,用 logistic regression 或线性核函数的 SVM.
- 当特征数比较小,样本个数大小适中时,用高斯核函数可能会工作得很好。
- 当特征数比较小,样本非常多(比如10万以上)的时候,此时用高斯核函数的 SVM 可能会运行得非常慢,可以尝试再手动添加一些特征,然后用 logistic regression 或线性核函数的 SVM.
对以上所有的问题,都可以用神经网络来解决,但神经网络的缺点是运行得比较慢,而 SVM 可以运行很快,且神经网络需要担心局部最优问题,而 SVM 是一个凸优化问题,必定会得到全局最优。
- 【Machine Learning】笔记:SVM
- 【Machine Learning】SVM学习笔记
- Machine Learning SVM
- Machine Learning (2) SVM
- Machine Learning---SVM
- Machine Learning---5--SVM
- machine learning week7 学习笔记 SVM 习题解答
- [Machine learning]SVM实验续
- [Machine Learning] SVM--support vector machine
- 【Machine Learning】笔记:Online Learning
- 【Machine Learning】笔记:Transfer Learning
- 【Machine Learning实验5】SVM实验
- Stanford Machine Learning -- 第六讲 SVM
- Machine learning-------------SVM(support vector machines)
- machine learning(3)---SVM算法原理
- 【Machine Learning实验5】SVM实验
- Machine learning-------------SVM(support vector machines)
- [Machine Learning] SVM系列转载文章
- 【剑指Offer】面试题57:删除链表中重复的结点
- 欢迎使用CSDN-markdown编辑器
- UILabel 详解
- Java for Web学习笔记(七四):国际化i18n(2)Locale Resolver
- iframe在ios滑动不顺畅
- 【Machine Learning】笔记:SVM
- 课程设计--简易电话簿
- 欢迎使用CSDN-markdown编辑器
- 进程之间的通信方式
- UIScrollView基础篇
- CentOS、Ubuntu、Debian三个linux比较异同
- 《机器学习》读书笔记 2 前言
- CSS中margin介绍
- 微服务实战:百万千万级数据的实时处理架构(一)