在线客服:
yobo官网 yobo官网
全国服务热线:010-80887545
您的位置:首页 > 新闻中心 >

翻译:有关支持向量机(SVM)及其参数调整(Python和R)的简单教程

浏览 140次 来源:【jake推荐】 作者:-=Jake=-    时间:2021-02-18 20:37:43
[摘要] 二、目录什么是支持向量机?什么是支持向量机(SVM)?支持向量机是一种有监督的机器学习算法,可用于分类和回归问题。在这种情况下,支持向量机寻找超平面,要最大化边距并最小化错误分类。在上面的代码中,我们考虑调整的是核函数的参数,C和gamma。

一、简介

数据分类是机器学习中非常重要的任务。支持向量机(SVM)广泛用于模式分类和非线性回归领域。 SVM算法的原始形式由Vladimir N. Vapnik和Alexey Ya提出。从那时起,SVM发生了巨大变化,已成功用于许多实际问题,例如文本(和超文本)分类,图像分类,生物信息学(蛋白质分类,癌症分类),手写字符识别等。

二、内容什么是支持向量机? SVM如何工作?推导SVM方程。 SVM的优缺点是在Python和R中实现的。1.什么是支持向量机(SVM)?

支持向量机是一种可监督的机器学习算法,可用于分类和回归问题。它遵循一种使用核函数技术转换数据的技术,并基于这些转换,在可能的输出之间找到最佳边界。

简单来说,它做了一些非常复杂的数据转换,以找出如何根据标签或输出定义来分离数据。在本文中,我们将介绍SVM分类算法。

2. SVM如何工作?

主要思想是确定使训练数据最大化的最佳分离超平面。让我们逐项了解这个客观术语。

什么是分离超平面?

我们看到上图中给出的数据可以分开。例如,我们可以画一条线电竞下注 ,线下的所有点均为绿色,线上的所有点均为红色。这样的线称为分离超平面。

这时,您可能想知道为什么将其称为超平面?

在上图中,我们考虑了最简单的示例,其中数据集位于二维平面()中。但是支持向量机也可以用于一般的n维数据集。在较大尺寸的情况下,超平面是平面的概括。

更正式地说,它是n维欧式空间的n-1维子空间。所以

我们已经说过,SVM的目标是找到最佳的分离超平面。那么最佳分离超平面是什么时候?

超平面分离数据集的事实并不意味着它是最佳的。

让我们通过一组图表了解最佳的超平面。

1、多个超平面

有多个超平面,但是其中一个是分离的超平面?可以很容易地看出,B行是最能区分这两种类型的行。

2、多个分离超平面

数据集可以有多个间隔,我们如何找到最佳的间隔超平面?凭直觉,如果我们选择一个接近一类数据点的超平面,那么它可能无法很好地概括。因此,请选择一个离每个类别的数据点尽可能远的超平面。

在上图中,满足指定条件的最佳超平面是B。

因此,通过最大化每个类别的最接近点与超平面之间的距离,可以找到最佳的分离超平面。该距离称为边距。

SVM的目标是找到最佳的超平面,因为它不仅对现有数据集进行分类,而且还有助于预测未知数据的类别。最佳超平面是具有最大裕度的平面。

3.推导SVM方程

现在我们已经了解了该算法的基本组成,让我们直接了解SVM的数学组成。

我假设您熟悉基本的数学概念,例如向量支持向量机 参数,向量算术(加法,减法,点积)和正交投影。这些概念也可以在文章“机器学习线性代数的先决条件”()中找到。

超平面方程

您将看到一条直线方程,例如

,其中m是斜率,c是y轴上线的截距。

超平面的一般方程如下:

其中

是向量

是两个向量的点积。向量

通常称为体重。

线性方程可以转换为

这时亚博代理

只是表示同一事物的两种不同方式。那为什么要使用

?仅仅是因为在高维数据集的情况下更容易处理,并且表示垂直于超平面的向量。一旦我们开始计算从点到超平面的距离,此属性将很有用。

了解约束

我们分类问题中的训练数据在

打开。这意味着训练数据集是一对

;

是n维特征向量,

标签。什么时候

支持向量回归机 matlab_支持向量机 参数_支持向量回归机matlab

表示特征向量

该样本属于1类,如果属于

表示该样本属于1类。

在分类问题中,我们尝试找到一个函数

从训练数据集中学习,然后运用其知识对未知数据进行分类。

的值

可以是一个无限数,因此我们必须限制要处理的函数的类。对于SVM,这种功能表示为

超平面的功能。

它也可以表示为

这将输入空间分为两部分,一部分包含-1类的向量,另一部分包含+1类的向量。

对于本文的其余部分,我们将考虑二维向量。订购

这是一种用于分离数据集并满足以下条件的超平面:

我们可以一起选择另外两个超平面

以便它们也可以分隔数据并具有以下等式:

这使得

等距。变量δ不是必需的,所以我们可以设置δ= 1来简化问题,有

支持向量回归机 matlab_支持向量机 参数_支持向量回归机matlab

接下来,我们要确保它们之间没有指向。因此,我们将仅选择满足以下约束的超平面:

对于每个向量:

1、

属于类别1;

2、

属于1级。

组合约束

以上两个约束可以组合为一个约束。

约束1:

属于1类,

将两侧乘以

(对于这个等式,它总是-1)

表示

因为

属于1级。

约束2:

属于类别1,

结合以上两个方程,我们得到:

,对所有人

这是唯一的约束,而不是两个在数学上等效的约束。组合的新约束也具有相同的效果,即两个超平面之间没有点。

最大化利润率

为简单起见,我们将跳过用于计算保证金的公式的推导,

此公式中唯一的变量是

相同

间接成比例,因此使边距最大化将使

最小值,导致以下优化问题:

制作

最小,

以上是我们的数据可线性分离的情况。在许多情况下,不能通过线性分离对数据进行完全分类。在这种情况下,支持向量机会寻找超平面,从而使余量最大化,并使分类错误最小化。

为此,我们引入了松弛变量,

,它允许某些物体从边缘掉落,但要惩罚它们。

在这种情况下,算法会尝试在将裕量最大化的同时将松弛变量保持为零。但是,它最大程度地减少了错误分类与边界超平面的距离之和支持向量机 参数,而不是错误分类的数量。

现在将约束更改为

将优化问题更改为:make

最小化,在何处

这里,参数C是一个正则化参数,它控制松弛变量罚分(错误分类)和边距宽度之间的权衡。

,强制执行所有约束条件。

分离两种类型数据的最简单方法是在2维数据的情况下是一条线,在3维数据的情况下是一个平面。但是,并非总是可以使用线或平面,并且还需要在非线性区域中将这些类别分开。支持向量机通过使用内核函数来处理这种情况,该函数将数据映射到不同的空间,其中线性超平面可用于分隔类。这就是所谓的核函数技术,核函数将数据转换为更高维的特征空间,从而使线性分离成为可能。

如果

是的

映射到

内核函数,然后将约束更改为

优化问题是:make

最小化,在何处

在本文中,我们不会讨论这些优化问题的解决方案。解决这些优化问题最常用的方法是凸优化。

4、支持向量机的优缺点

每种分类算法都有其优点和缺点亚博买球 ,并根据所分析的数据集进行工作。

SVM的一些优点如下:

SVM的缺点如下:

已在Python和R中实现

让我们看一下用于在Python和R中实现SVM的库和函数。

5、 Python实现

用于在Python中实现机器学习算法的最广泛使用的库是scikit-learn。 scikit-learn中用于SVM分类的类是svm.SVC()

sklearn.svm.SVC(C = 1. 0,kernel ='rbf',degree = 3,gamma ='auto')

参数如下:

有许多高级参数,在此不再赘述。您可以单击此处查看(#sklearn.svm.SVC)。

您还可以通过更改参数和内核功能来调整SVM。调整scikit-learn中可用参数的功能是gridSearchCV()。

sklearn.model_selection.GridSearchCV(estimator,param_grid)

此函数的参数定义如下:

要了解有关GridSearch.CV()的其他参数的更多信息,请单击此处(#)。

在上面的代码中,我们正在考虑调整内核函数C和gamma的参数。从中获得最佳值的值是用括号括起来的值。在这里YABO88 ,我们只给出几个值,您也可以给出整个范围的值,但是执行时间更长。

R实现

我们在R中实现SVM算法的程序包是e1071。使用的函数是svm()。

摘要

在本文中,我对SVM分类算法进行了非常基本的说明。我已经省略了一些复杂的数学问题,例如计算距离和解决优化问题。但是我希望通过本文,您可以了解如何基于现有数据集构建机器学习算法SVM。

PPV班级团队翻译翻译:田田旦旦转载请联系授权

老王
本文标签:支持向量机,svm,超平面

推荐阅读

最新评论