支持向量机(SVM)

学习最优超平面作为决策边界

支持向量机是一种支持向量机监督式学习算法用于许多分类和回归问题,包括信号处理医学应用,自然语言处理,以及语音和图像识别

支持向量机算法的目标是找到一个超平面,该超平面尽可能地将一个类的数据点与另一个类的数据点分离开来。“最佳”定义为两个类之间差值最大的超平面,用下图中的正负值表示。裕度是指平行于没有内部数据点的超平面的平板的最大宽度。只有对于线性可分问题,该算法才能找到这样的超平面,对于大多数实际问题,该算法最大化软余量,允许少量的错误分类。

图1:定义类之间的“裕度”——支持向量机寻求优化的标准

定义类之间的“裕度”——支持向量机寻求优化的标准。

支持向量是指识别分离超平面位置的训练观察的子集。标准的支持向量机算法是针对二元分类问题制定的,多类问题通常被简化为一系列的二元分类问题。

深入挖掘数学细节,支持向量机属于一类机器学习称为核方法的算法,其中的特征可以使用核函数进行转换。核函数将数据映射到一个不同的,通常是高维空间,期望在这种转换之后类更容易分离,潜在地将复杂的非线性决策边界简化为高维映射特征空间中的线性边界。在这个过程中,数据不需要显式转换,这在计算上是昂贵的。这通常被称为内核技巧。

MATLAB®支持几个内核,包括:

类型的支持向量机 美世的内核 描述
高斯或径向基函数 \ (K (x_1、x_2) = \ exp \离开(- \压裂{\ | x_1——x_2 \ | ^ 2}{2 \σ^ 2}\)\) 一个班学习。\(\sigma\)是内核的宽度
线性 \ (K (x_1、x_2) = x_1 ^ {\ mathsf {T}} x_2 \)
两个类的学习。
多项式 \ (K (x_1、x_2) = \离开(x_1 ^ {\ mathsf {T}} x_2 + 1 \右)^{\ρ}\)
ρ\ (\ \)多项式的阶是多少
乙状结肠 \ (K (x_1、x_2) = \双曲正切\离开(\ beta_ {0} x_1 ^ {\ mathsf {T}} x_2 + \ beta_ {1} \) \)
它是一个mercer内核的特定值只\(\beta_{0}\)和\(\beta_{1}\)

训练支持向量机相当于求解a二次优化拟合一个最小化类之间软裕度的超平面问题。变换特征的数量由支持向量的数量决定。

重点:

  • 支持向量机在许多分类和回归任务中都取得了良好的性能。
  • 虽然支持向量机是为二进制分类制定的,但您可以通过组合多个二进制分类器来构造一个多类支持向量机。
  • 内核使支持向量机更加灵活,能够处理非线性问题。
  • 只需要从训练数据中选择支持向量来构建决策曲面。一旦训练完毕,剩下的训练数据就无关紧要了,产生了适合于自动代码生成的模型的紧凑表示。

例子

支持向量机还可以用于异常检测,方法是构造一个单类支持向量机,其决策边界使用离群值阈值确定对象是否属于“正常”类。在本例中,MATLAB基于异常值的目标分数作为参数将所有示例映射到单个类,如下所示:fitcsvm(样本,(…),‘OutlierFraction’,…)。该图显示了一系列的分离超平面OutlierFractions用于来自人类活动分类任务的数据。

基于单类支持向量机的HAR离群值检测

参见:统计和机器学习工具箱用MATLAB进行机器学习机器学习模型生物医学信号处理

Baidu
map