支持向量机是有监督还是无监督
- 格式:docx
- 大小:6.81 MB
- 文档页数:10
支持向量机是有监督还是无监督
有监督
支持向量机(supportvectormachine, SVM)是一种有监督的机器学习算法,主要用于解决分类问题。
一、什么是支持向量机?
支持向量机是一种有监督的机器学习算法。
该算法广泛用于数据科学/机器学习问题,因为该算法非常强大且用途广泛。
支持向量机可用于线性和非线性分类、回归,甚至异常检测。
它大量用于具有复杂的中小型数据集的分类问题。
支持向量机是一种非概率线性分类器,它使用几何方法来区分数据集中的不同类别。
二、支持向量机中使用的术语是什么?
我们了解什么是支持向量机。
现在我们将深入探讨支持向量机中使用的核心概念和术语。
2.1 支持向量
向量是表示在 n 维图像上的数据点。
例如,我们在像这样 (x,y) 的2D 图和像这样 (x,y,z) 这样的 3D 图上表示一个点,其中 x,y,z 是图像的轴。
图为:支持向量
因此,支持向量是 n 维图像上的向量,它们是离超平面最近的点并影响超平面的方向。
通过这个支持向量,我们传递了超平面的正边距和负边距。
2.2 超平面
超平面只不过是具有 (n-1) 维的决策边界,其中 n 是数据集中的列数。
超平面分离不同类的点/向量。
示例 1:在 2D 图像中,我们使用如下所示的线分隔点。
图为:二维超平面
图片中的绿线充当超平面,该超平面的方程将等于线的方程:
我们可以将其重写为:
示例 2:在 3D图像中,我们使用如下所示的平面来分隔点。
图像中表示的平面充当超平面,该超平面的方程将等于平面的方程,即:
同样,对于 n 维数据集,超平面方程将是:
如果我们以向量形式重写则是:
2.3 核函数
核函数是 SVM 中用于将非线性数据转换为更高维数据集的数学函数,以便 SVM 可以通过使用超平面来分离数据的类别。
在 Scikit-learn 中,SVM 支持各种类型的内核,如“linear”、“poly”、“rbf”、“sigmoid”。
此外,我们可以创建自己的核函数并将其传递给s cikit-learn SVM。
现在让我们看一个例子来更好地理解核函数的作用:
下图代表两种类型的数据点。
图为:非线性数据示例
现在,如果我们想创建一个超平面,看起来像这样:
我们可以观察到它无法正确分离所有点。
但是如果我们考虑径向基函数作为核函数。
图为:RBF核超平面
它能够正确地分离所有点。
怎么做到的呢?实际上,径向基函数核函数会像下图那样转换数据集。
我们可以观察到,在 3D图像中我们可以绘制一个超平面来分离这些点。
这就是借助正确的核函数让 SVM 对数据点进行分类的方式。
2.4 边距 (margin)
边距是通过支持向量的线,它们始终平行于超平面。
3. 支持向量机如何解决分类问题
支持向量机的主要任务是最大化边距离之间的距离,使得没有点越过边缘。
这也称为“硬边距 SVM”。
在理想情况下,上述条件永远不会违反,距离可以计算为:
但在现实世界中,我们总是会得到带有一些异常值的不纯数据,如果我们遵循硬边距概念,那么我们将无法创建任何超平面。
因此,引入了一个新概念,即“Soft Margin SVM”。
在此,我们引入了一个新概念,即“Hinge Loss”:
在 soft margin SVM 中,铰链函数是离群点和边缘之间的距离之和,然后乘以超参数“C”:
4. 支持向量机如何解决回归问题?
在回归中,SVM 采用了一些不同的方法。
这种方法可以用三行来解释。
第一行是最佳拟合回归线,另外两行是表示误差范围的边界线。
换句话说,最佳拟合线(或超平面)将是通过最大数量数据点的线,并且选择误差边界以确保最大包含。
5. 支持向量机的优缺点是什么?
优点:
- SVM 在高维空间中是有效的;
- 在维数大于样本数的情况下仍然有效;
- SVM 是内存高效的;
缺点:
- 如果特征的数量远大于样本的数量,那么在选择核函数时就避免了过拟合;
- SVM 不像 Logistic 回归那样直接提供概率估计;
6. 如何使用Scikit-learn实现支持向量机?
SVM 的实现非常简单易行。
我们只需要导入 sklearn 包。
对于这个例子,我们使用了一个已经存在于 sklearn 包中的玩具数据集,这个例子是一个分类问题。
此外,我们将从 python 中导入一些必要的包。
提取数据:
我们使用乳腺癌(诊断)数据集:
将数据集切分为训练集和测试集:
现在使用训练数据训练模型然后预测测试数据的结果:
最后使用混淆矩阵、accuracy_score 和 F1_score 测量准确度:。