机器学习—支持向量机(SVM)

支持向量机(SVM)

支持向量机(SVM)是个非常强大并且有多种功能的机器学习模型,能够做线性或者非线性的分类,回归,甚至异常值检测。机器学习领域中最为流行的模型之一,是任何学习机器学习的人必备的工具。SVM 特别适合应用于复杂但中小规模数据集的分类问题。

优点:泛化错误率低,计算开销不大,结果易解释。
缺点:对参数调节和核函数的选择敏感,原始分类器不加修改仅适用于处理二类问题。
适用数据类型:连续型和离散型数据。

SVM优化目标

SVM优化目标
当 y=1时,z=Xθ>=1, 函数cost1(z)函数值为0
当y=0时,z=Xθ<=-1, 函数cost0(z)函数值为0

惩罚参数C(可理解为1/λ):

当C不是非常非常大的时候,它可以忽略掉一些异常点的影响,得到更好的决策界。甚至当你的数据不是线性可分的时候,支持向量机也可以给出好的结果。

C 较大时,相当于λ较小,可能会导致过拟合,高方差。
C 较小时,相当于λ较大,可能会导致低拟合,高偏差。

大间距分类器

1)如果有一个正样本,y 等于1,则只有在z 大于等于1 时,代价函数cost1(z)才等于0。
2)反之,如果y 是等于0 的,观察一下,函数cost0(z),它只有在z<=-1的区间里函数值为0。
3)这是支持向量机的一个有趣性质。相当于在支持向量机中嵌入了一个额外的安全因子。或者说安全的间距因子。
4)这个距离叫做间距(margin)。
支持向量机决策边界
忽略掉异常点的影响

  1. 如果将C设置的不要太大,则最终会得到这条黑线
  2. 当C不是非常非常大的时候,它可以忽略掉一些异常点的影响,得到更好的决策界。甚至当你的数据不是线性可分的时候,支持向量机也可以给出好的结果。
  3. 回顾C=1/λ:
    1.C 较大时,相当于λ较小,可能会导致过拟合,高方差。
    2.C 较小时,相当于λ较大,可能会导致低拟合,高偏差。
    存在异常值的大边缘分类器
核函数
核函数作用

当数据在低维线性不可分时,我们用函数将数据映射到高维度。但在高维进行矢量积运算,运算量会增大。所以有了核函数,核函数可以使用低维数据进行运算,但其结果却是映射到高维的。

使用核函数

1.非线性决策边缘
在这里插入图片描述
在这里插入图片描述
2. 除了对原有的特征进行组合以外,可以利用核函数来构造f1,f2,f3
3.可以利用核函数来计算出新的特征。
在这里插入图片描述

1.通常是根据训练集的数量选择地标的数量,即如果训练集中有m个实例,则选取m个地标,并且令:l (1)=x(1), l(2)=x(2),…, l(m)=x(m)。
2.这样做的好处在于:得到的新特征是建立在原有特征与训练集中所有其他特征之间距离的基础之上的。

除高斯核函数之外的几个核函数:

  1. 多项式核函数(Polynomial Kernel)
  2. 字符串核函数(String kernel)
  3. 卡方核函数(chi-square kernel)
  4. 直方图交集核函数(histogram intersection kernel)
  5. sigmoid核函数
使用支持向量机

n为特征数,m为训练样本数。下面是一些普遍使用的准则:

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

SVM算法是一个很优秀的算法,在集成学习和神经网络之类的算法没有表现出优越性能之前,SVM算法基本占据了分类模型的统治地位。目前在大数据时代的大样本背景下,SVM由于其在大样本时超级大的计算量,热度有所下降,但仍然是一个常用的机器学习算法。

SVM算法的主要优点有:
  1. 解决高维特征的分类问题和回归问题很有效,在特征维度大于样本数时依然有很好的效果。
  2. 仅仅使用一部分支持向量来做超平面的决策,无需依赖全部数据。
  3. 有大量的核函数可以使用,从而可以很灵活的来解决各种非线性的分类回归问题。
  4. 样本量不是海量数据的时候,分类准确率高,泛化能力强。
SVM算法的主要缺点有:
  1. 如果特征维度远远大于样本数,则SVM表现一般。
  2. SVM在样本量非常大,核函数映射维度非常高时,计算量过大,不太适合使用。
  3. 非线性问题的核函数的选择没有通用标准,难以选择一个合适的核函数。
  4. SVM对缺失数据敏感。

算法确实很重要,但更加重要的是:你有多少数据,你有多熟练是否擅长做误差分析和排除学习算法,指出如何设定新的特征变量和找出其他能决定你学习算法的变量等方面,通常这些方面会比你使用逻辑回归还是SVM这方面更加重要。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值