Supervised Learning------Linear Support Vector Machines

Linear Support Vector Machines

Introduction

支持向量机(简称SVM)是另一种用于对数据进行分类的机器学习算法。 SVM的目的是尝试找到一条线或超平面来划分最佳分类数据点的维空间。 如果我们试图划分两个类A和B,我们会尝试用线来最好地分隔两个类。 线/超平面的一侧是来自A类的数据,另一侧是来自B类。这种算法在分类时非常有用,因为我们必须计算一次最佳线或超平面,并且任何新数据点都可以轻松 只是通过查看它们落在哪一侧的线来进行分类。 这与k-最近邻点algortihm形成对比,在那里我们必须计算每个数据点最近的邻居。

Hyperplane

超平面取决于它所处的空间,但它将空间划分为两个断开的部分。 例如,1维空间只是一个点,2维空间是一条线,3维空间是一个平面,依此类推。

How do we find the best hyperplane/line?

您可能想知道可能有多行可以很好地分割数据。 事实上,有无数的线可以划分两个类。 正如您在下图中看到的那样,每条线都会分割正方形和圆形,我们选择哪一条?

那么SVM如何找到分离这两个类的理想线? 它不只是随机选择一个。 算法选择具有最大余量的线/超平面。 最大化边距将为我们提供分类数据的最佳线。 如下图所示。

How to maximize the margin?

最接近线的数据决定了最佳线。 这些数据点称为支持向量。 它们显示为上面填充的正方形和圆圈。 从这些向量到超平面的距离称为边距。 通常,这些点距离超平面越远,正确分类数据的概率就越大。 寻找支持向量和最大化边际有很多复杂的数学。 我们不会进入那个; 我们只是想了解SVM背后的基本思想。

Ignore Outliers

有时数据类会有异常值。 这些数据点与其他类别明显分开。 支持向量机将忽略这些异常值。 如下图所示。

带有红色圆圈的星是异常值。 因此,SVM忽略了异常值并创建了将两个类分开的最佳线。

Kernel SVM

将存在无法用简单线或超平面分隔的数据类。 这称为非线性可分离数据。 以下是此类数据的示例。

没有明确的方法将星星与圆圈分开。 SVM将能够使用称为内核技巧的技巧对非线性可分离数据进行分类。 基本上,内核技巧将点数转换为更高维度,以将非线性可分离数据转换为线性可分数据。 因此,上图将使用分隔数据的圆圈进行分类。

这是一个核心技巧的例子。

有三种类型的内核:

线性内核
多项式核
径向基函数(RBF)内核

您可以通过将“model = svm.SVC(kernel ='linear',C = 10000)”中的内核值更改为'poly'或'rbf'来查看这些内核如何更改最佳超平面的结果。 这是在linear_svm.py中。

Conclusion

SVM是一种很好的机器学习技术,可以对数据进行分类。 现在我们对SVM了解了一些,我们可以展示使用这个分类器的优缺点。

SVM的优点:

1、有效地分类更高维空间
2、节省内存空间,因为它仅使用支持向量来创建最佳线。
3、数据点可分离时的最佳分类器
SVM的缺点:

1、当存在大量数据集时执行不良,训练时间更长。
2、当类重叠时执行不良,即不可分离的数据点。

Motivation

你为什么要使用SVM? 有许多不同的模型可以对数据进行分类。 为什么要使用这个? 如果您知道数据点可以轻松分离,这可能是最好的分类器。 此外,它可以通过使用内核技巧进行扩展,因此请尝试使用不同的内核,如径向基函数(RBF)。

Code Example

查看我们的代码linear_svm.py,了解如何使用Python的Scikit-learn库实现线性SVM。 有关Scikit-Learn的更多信息,请访问此处here

linear_svm.py,从Scikit-Learn的数据集库中加载一组乳腺癌数据。 程序将获取数据并将其绘制在图形上,然后使用SVM创建超平面以分离数据。 它还圈出了确定超平面的支持向量。 输出应如下所示:

绿点被归类为良性。 红点被归类为恶性。

这将加载Scikit-Learn数据集库中的数据。 您可以将数据更改为您想要的任何数据。 只需确保您拥有数据点和一系列目标即可对这些数据点进行分类。

您还可以将内核更改为“rbf”或“多项式”。 这将创建一个不同的超平面来对数据进行分类。 您可以在代码中更改它:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九妹123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值