理解支持向量机(SVM)

介绍:

支持向量机可能是最流行的机器学习算法之一。它们在20世纪90年代被开发出来的时候非常受欢迎,并且仍然是高性能算法的首选方法,几乎没有调优。在这篇文章中,我们将介绍SVC的各种概念。

1.什么是SVM?

支持向量机是一种监督学习算法,可用于分类和回归问题,如支持向量分类(SVC)和支持向量回归(SVR)。它用于较小的数据集,因为它花费的时间太长了。在这里,我们将关注SVC。

2. SVM背后的意识形态:

SVM基于寻找最能将特征分离到不同域的超平面的想法。

3.直觉:

考虑以下情况:

有一个stalker正在向您发送电子邮件,现在您想要设计一个函数(超平面),这将明确区分这两种情况,这样每当您收到来自stalker的电子邮件时,它将被归类为垃圾邮件。以下是绘制超平面的两种情况的图,你会选择哪一个?为什么?

理解支持向量机(SVM)

我想你会选择(a)。你觉得为什么选择了(a)呢?因为图(a)中的电子邮件是清晰分类的,与图(b)相比,您对此更有信心。基本上,SVM由提出最佳超平面的想法组成,该超平面将清楚地分类不同的类(在这种情况下它们是Binary类)。

4. SVM中使用的术语:

最接近超平面的点称为支持向量点,向量与超平面的距离称为边距。

理解支持向量机(SVM)

在这里发展的基本直觉是,离超平面越远的SV点越多,正确地对各自区域或类别中的点进行分类的概率就越大。SV点在确定超平面时非常关键,因为如果向量的位置发生变化,超平面的位置会发生变化。从技术上讲,这个超平面也可以称为边距最大化超平面。

5.超平面(决策面):

超平面是用于区分特征的函数。在2-D中,用于在特征之间进行分类的函数是一条线,而用于对三维中的特征进行分类的函数被称为平面,类似地,将更高维度中的点分类的函数被称为超平面。现在,你已经知道超平面,让我们回到SVM。

假设有“m”维:

因此,超平面在“M”维上的方程为=

理解支持向量机(SVM)

其中,

  • Wi =矢量(W0,W1,W2,W3 ...... Wm)
  • b =偏差项(W0)
  • X =变量。

6.硬边界 SVM:

假设3个超平面即(π,π+,π-),如图所示

理解支持向量机(SVM)

每个超平面的方程可以认为是:

理解支持向量机(SVM)

对于点X1:

理解支持向量机(SVM)

说明:当点X1在超平面上时,方程决定了实际输出和超平面方程的乘积为1,这意味着该点在正域中被正确分类。

对于X3点:

理解支持向量机(SVM)

说明:当点X3我们可以说该点远离超平面时,方程式确定我们的实际输出和超平面方程的乘积大于1,这意味着该点在正域中被正确分类。

对于X4点:

理解支持向量机(SVM)

说明:当点X4时,我们可以说该点位于负区域的超平面上,并且该方程确定我们的实际输出和超平面方程的乘积等于1,这意味着该点在负域中被正确分类。

对于X6点:

理解支持向量机(SVM)

说明:当点X6我们可以说该点远离负区域中的超平面并且该等式确定我们的实际输出和超平面方程的乘积大于1,这意味着该点在负域中被正确分类。

让我们看一下未分类的约束:

理解支持向量机(SVM)

对于X7点:

理解支持向量机(SVM)

说明:当Xi = 7时,该点被分类不正确,因为对于点7,wT + b将小于1并且这违反了约束。因此,我们发现由于约束违规而导致错误分类。同样,还有点Xi = 8。

因此,从上面的例子中,我们可以得出结论,对于任何一点,

if Yi(WT*Xi +b) ≥ 1:

then Xi 被正确分类

else:

Xi 被错误分类。

所以我们可以看到,如果点是线性可分的,那么只有我们的超平面能够区分它们,如果引入任何异常值,那么它就无法将它们分开。因此,这些类型的SVM称为硬边界SVM(因为我们有非常严格的约束来正确地对每个数据点进行分类)。

7.软边际SVM:

我们基本上认为数据是线性可分的,在现实生活中可能不是这种情况。我们需要更新,以便我们的函数可以跳过几个异常值,并能够对几乎线性可分的点进行分类。因此,我们引入了一个新的Slack变量( ξ),称为Xi。

如果我们将ξ引入我们之前的等式中,我们可以将其重写为

理解支持向量机(SVM)

if ξi= 0,

这些点可以被认为是正确分类的。

else:

ξi> 0 , 错误地分类点。

因此,如果ξi> 0,则意味着Xi(变量)位于不正确的维度,因此我们可以将ξi视为与Xi(变量)相关联的误差项。平均误差可以给出;

理解支持向量机(SVM)

平均误差

因此,我们的目标,在数学上可以描述为;

理解支持向量机(SVM)

理解支持向量机(SVM)

其中ξi= ςi

为了找到向量w和标量b,使得由w和b表示的超平面使边缘距离最大化,并使所有点被正确分类的条件下的损失项最小化。

这种表述称为软边缘技术。

8. SVM的损失函数解释:

理解支持向量机(SVM)

理解支持向量机(SVM)

当Zi≥1时,损失为0

理解支持向量机(SVM)

当Zi <1然后损失增加

因此,可以解释铰链损失是max(0,1-Zi)。

9. SVM的对偶形式(Dual form):

现在,让我们考虑一下我们的数据集完全不是线性可分的情况。

理解支持向量机(SVM)

基本上,我们可以通过在逻辑回归中添加相关特征将每个数据点投影到更高维度来分隔每个数据点。但是使用SVM,有一种强大的方法可以实现将数据投影到更高维度的任务。上面讨论的公式是SVM的原始形式 。另一种方法是SVM的对偶形式,它使用拉格朗日乘数来解决约束优化问题。

理解支持向量机(SVM)

理解支持向量机(SVM)

注意:

If αi>0 then Xi是支持向量,并且当αi= 0时,则Xi不是支持向量。

观察:

  1. 为了解决实际问题,我们不需要实际的数据点,而只需要每对矢量之间的点积就足够了。
  2. 要计算“b”偏差常数,我们只需要点积。
  3. 与拉格朗日公式相比,SVM的对偶形式的主要优点在于它仅取决于α。

10.什么是核技巧?

核是一种在一些(非常高维)特征空间中计算两个向量x和y的点积的方法,这就是为什么核函数有时被称为“广义点积”。

理解支持向量机(SVM)

理解支持向量机(SVM)

st =subjected to

应用核技巧仅仅意味着通过核函数替换两个向量的点积。

11.核类型:

  • 线性核
  • 多项式核
  • 径向基函数核(RBF)/高斯核

我们将关注多项式和高斯核,因为它是最常用的。

多项式核:

通常,多项式核定义为;

理解支持向量机(SVM)

b =degree of kernel和a =常数项

在多项式核中,我们只是通过增加核的幂来计算点积。

例:

让我们说原来X空间是二维的

Xa =(a1,a2)

Xb =(b1,b2)

现在,如果我们想将我们的数据映射到更高的维度,假设在Z空间中,这可能是六维的

理解支持向量机(SVM)

为了解决这个dual SVM的问题,我们需要(转置)Za ^ t和Zb的点积。

方法1:

传统上我们会通过以下方式来解决:

理解支持向量机(SVM)

因为我们必须在每个数据点上执行点积,然后计算我们可能需要进行乘法运算的点积,这将花费很多时间(想象千位数据点)...

或者我们可以简单地使用

方法2:

使用核技巧:

理解支持向量机(SVM)

在这种方法中,我们可以简单地通过增加幂的值来计算点积。

径向基函数核(RBF)/高斯核:

高斯RBF(Radial Basis Function)是SVM模型中使用的另一种流行的核方法。RBF核是一个函数,其值取决于距离原点或某个点的距离。高斯核具有以下格式;

理解支持向量机(SVM)

|| X1 - X2 || = X1和X2之间的欧几里德距离

使用原始空间中的距离,我们计算X1和X2的点积(相似度)。

注意:相似度是两点之间的角距离。

12. SVM的优缺点:

优点:

  • 它在更高的维度上确实有效。
  • 当特征数量超过训练样例时有效。
  • 类可分离时的最佳算法
  • 超平面仅受支持向量的影响,因此异常值影响较小。
  • SVM适用于极端情况二进制分类。

缺点:

  • 对于较大的数据集,需要大量的时间来处理。
  • 在重叠类的情况下表现不佳。
  • 选择适当的SVM超参数,以实现足够的泛化性能。
  • 选择适当的核函数可能很棘手。

13.为SVM准备数据:

1.数字转换:

支持向量机假设你的输入是数值的而不是类别的。因此,您可以使用最常用的“one-hot编码,标签编码等”来转换它们。

2.Binary转换:

由于SVM只能对Binary数据进行分类,因此您需要使用(one vs rest方法/ one vs one方法)转换方法将多维数据集转换为Binary形式。


分享到:


相關文章: