Scikit Learn - 支持向量机


本章讨论称为支持向量机(SVM)的机器学习方法。

介绍

支持向量机 (SVM) 是强大而灵活的监督机器学习方法,用于分类、回归和异常值检测。SVM 在高维空间中非常有效,通常用于分类问题。SVM 很受欢迎并且内存效率很高,因为它们在决策函数中使用训练点的子集。

SVM 的主要目标是将数据集分为多个类,以便找到最大边缘超平面(MMH),这可以通过以下两个步骤完成 -

  • 支持向量机将首先迭代生成超平面,以最佳方式分隔类别。

  • 之后它将选择正确分隔类别的超平面。

SVM 中的一些重要概念如下:

  • 支持向量- 它们可以定义为最接近超平面的数据点。支持向量有助于确定分隔线。

  • 超平面- 划分具有不同类别的对象集的决策平面或空间。

  • 边距- 不同类的最接近数据点上的两条线之间的间隙称为边距。

下图将让您深入了解这些 SVM 概念 -

边缘超平面

Scikit-learn 中的 SVM 支持稀疏和密集样本向量作为输入。

支持向量机的分类

Scikit-learn 提供了三个类,即SVC、NuSVCLinearSVC,可以进行多类分类。

SVC

它是C语言支持向量分类,其实现基于libsvm。scikit-learn 使用的模块是sklearn.svm.SVC。该类根据一对一方案处理多类支持。

参数

下表包含sklearn.svm.SVC类使用的参数-

先生编号 参数及说明
1

C - 浮点数,可选,默认 = 1.0

它是误差项的惩罚参数。

2

kernel - 字符串,可选,默认 = 'rbf'

该参数指定算法中使用的内核类型。我们可以选择'线性'、'多边形'、'rbf'、'sigmoid'、'预计算'中的任何一个。内核的默认值是'rbf'

3

- int,可选,默认 = 3

它代表“poly”核函数的程度,将被所有其他核忽略。

4

gamma - {'scale', 'auto'} 或 float,

它是核“rbf”、“poly”和“sigmoid”的核系数。

5

可选默认值- = 'scale'

如果您选择默认值,即 gamma = 'scale',则 SVC 使用的 gamma 值为 1/(