复习机器学习算法:SVM

SVM的本质是寻找最大间隔的分割超平面。

SVM的假设也是在样本的每个属性前面乘以一个系数,代价函数是基于LR演化而来的。LR中是S型函数的假设,SVM中是分段函数cost的形式,再包括正则项,最后SVM的代价函数为:

当C一般要设置地很大,这样子的SVM才能够找到最大间隔的超平面,thetaT*x>=1或者thetaT*x<=-1的时候,我们可以把第一项忽略。这样,转换之后的SVM的目标函数就是我们熟悉的:

我们构建拉格朗日函数:

分别对w和b求偏导,令偏导等于0,回代,可以得到w和b的最优解,如下:

W和b都是alpha表示的,我们使用SMO算法求得alpha。

利用核函数的概念,解决数据的线性不可分问题。核函数的作用,把显示映射到高维空间转换到隐式映射到高维空间。

SVM还可以扩展到多类分类中,利用one vs. one或者one vs. other的规则。

SVM的优点:效果较好,既可以适用线性数据,也可以非线性。

缺点:对参数选择敏感。

时间: 2024-10-14 00:40:16

复习机器学习算法:SVM的相关文章

复习机器学习算法:贝叶斯分类器

朴素贝叶斯算法是寻找一个极大后验假设(MAP),即候选假设的最大后验概率. 如下: 在朴素贝叶斯分类器中,假设样本特征之间是独立的,则有: 计算每个假设的后验概率,选出最大的概率,对应的类别就是样本的分类结果. 优缺点: 对小规模的数据表现很好,适合多分类任务,适合增量式训练.当时,需要样本的特征之间独立性较高,不能有太多的相关性.对输入数据的表达形式很敏感. 还有,当样本中某个特征在该类别中出现次数为0,即P(ai |vj)=0, 导致上式的分子全部为0. 这个时候需要使用m-估计和贝叶斯结合

机器学习算法--svm实战

1.不平衡数据分类问题 对于非平衡级分类超平面,使用不平衡SVC找出最优分类超平面,基本的思想是,我们先找到一个普通的分类超平面,自动进行校正,求出最优的分类超平面 测试代码如下: import numpy as npimport matplotlib.pyplot as pltfrom sklearn import svmrng = np.random.RandomState(0)n_samples_1 = 1000n_samples_2 = 100X = np.r_[1.5 * rng.ra

复习机器学习算法:Logistic 回归

区别于线性回归,不是把每个特征直接乘以系数,而是用一个S型函数(Logistic函数).如下: 使用这种形式函数的原因(概率.求导). 代价函数,也不是线性回归中的误差平方和,而是基于对数似然函数,如下: 单个样本的后验概率为:(y = 0, 1) 类似于二项分布的概率密度函数. 整个样本集的后验概率: 对数似然函数对于代价函数,如下: 梯度下降法求解,对上面的代价函数求导,如下: 误差乘以对应的属性值,再求和.形式和线性回归一致,解释了为何设计这样的S型函数和代价函数.这样的梯度下降法的计算量

复习机器学习算法:Boosting

Boosting的思想是集成学习,把许多个弱分类器结合起来,构成一个强分类器. 首先输入原始的训练样本,得到一个弱分类器,可以知道它的正确率和错误率.计算该弱分类器的权重,如下: 然后提高错误分类样本的权重,让后面的分类器focus它们,调整样本的权重: 如果原本分类正确: 如果样本分类错误: 把新的样本输入到后面学习,重复这个过程,得到许多个弱分类器,及其分类器的权重. 注意,Boosting算法中有两个权重,一个是分类器的权重,一个是样本的权重. Boosting算法的优点:性能好,可以防止

复习机器学习算法:决策树

决策树就是不断选择信息增益最大的属性,进行分类. 核心部分是使用信息增益判断属性的分类性能.信息增益计算如下: 信息熵: 允许有多个类别. 计算所有属性的信息增益,选择最大的作为决策树的根节点.然后,样本分枝,继续判断剩余的属性的信息增益. 信息增益有缺点:信息增益偏袒具有较多值的属性.分裂信息,用增益比率作为衡量标准,如下: 决策树的优点:对于有缺省特征的样本,也能够分类:允许样本特征有一定的错误,鲁棒性好. 缺点:容易过拟合,生成的树太大.(可以使用提前停止树的生长:剪枝:随机森林等方法避免

复习机器学习算法:线性回归

Logistic回归用来分类,线性回归用来回归. 线性回归是把让样本的属性前面加系数,相加.代价函数是误差平方和形式.所以,在最小化代价函数的时候,可以直接求导,令导数等于0,如下: 也可以使用梯度下降法,学习的梯度和Logistic回归形式一样. 线性回归的优点:计算简单. 缺点:不好处理非线性数据.

机器学习算法总结--SVM

简介 SVM是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,即支持向量机的学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解.或者简单的可以理解为就是在高维空间中寻找一个合理的超平面将数据点分隔开来,其中涉及到非线性数据到高维的映射以达到数据线性可分的目的. 训练数据线性可分时,通过硬间隔最大化,学习一个线性分类器,即线性可分支持向量机,又称为硬间隔支持向量机:训练数据近似线性可分时,通过软间隔最大化,也学习一个线性分类器,即线性支持向量机,也称为软间隔支持向量机

【机器学习算法-python实现】svm支持向量机(2)—简化版SMO算法

(转载请注明出处:http://blog.csdn.net/buptgshengod) 1.背景知识 通过上一节我们通过引入拉格朗日乗子得到支持向量机变形公式.详细变法可以参考这位大神的博客--地址 参照拉格朗日公式F(x1,x2,...λ)=f(x1,x2,...)-λg(x1,x2...).我们把上面的式子变型为: 约束条件就变成了: 下面就根据最小优化算法SMO(Sequential Minimal Optimization).找出距离分隔面最近的点,也就是支持向量集.如下图的蓝色点所示.

机器学习算法与Python实践之(三)支持向量机(SVM)进阶

机器学习算法与Python实践之(三)支持向量机(SVM)进阶 机器学习算法与Python实践之(三)支持向量机(SVM)进阶 [email protected] http://blog.csdn.net/zouxy09 机器学习算法与Python实践这个系列主要是参考<机器学习实战>这本书.因为自己想学习Python,然后也想对一些机器学习算法加深下了解,所以就想通过Python来实现几个比较常用的机器学习算法.恰好遇见这本同样定位的书籍,所以就参考这本书的过程来学习了. 在这一节我们主要是