SVM(支持向量机)
支持向量机(Support Vector Machine,SVM)是一种用于分类和回归分析的监督学习模型,在机器学习领域中被广泛应用。SVM的目标是找到一个最佳的分割超平面,将不同类别的数据分开,使得两个类别之间的间隔(即边界)最大化。下面是对SVM的详细解释:
SVM的基本概念
-
超平面(Hyperplane):
-
在二维空间中,超平面是将平面分为两部分的直线
-
在三维空间中,超平面是将空间分为两部分的平面
-
在更高维度的空间中,超平面是将该空间分为两部分的一个n-1维的子空间
-
-
支持向量(Support Vectors):
-
支持向量是离分割超平面最近的那些数据点
-
这些点是最重要的,因为它们定义了超平面的位置和方向
-
移动这些点将会改变超平面的位置
-
-
间隔(Margin):
-
间隔是指支持向量与超平面之间的距离
-
SVM的目标是最大化这个间隔,以提高分类器的鲁棒性和泛化能力
-
SVM的核函数(Kernel Function)
SVM可以通过使用核函数将输入数据映射到高维空间,在高维空间中,原本非线性可分的数据可以变成线性可分的。常见的核函数包括:
-
线性核(Linear Kernel):适用于线性可分的数据。
-
多项式核(Polynomial Kernel):用于非线性数据。
-
径向基函数核(RBF Kernel):也称高斯核,常用于非线性数据。
-
Sigmoid核(Sigmoid Kernel):模拟神经网络的激活函数。
SVM算法工作原理
-
训练阶段:
-
给定训练数据集,SVM通过求解一个优化问题,找到最大化间隔的分割超平面。
-
该优化问题通常是一个凸二次规划问题,可以通过各种优化算法求解。
-
-
分类阶段:
-
对于新的数据点,SVM根据其与分割超平面的相对位置进行分类。
-
数据点落在超平面一侧的属于一个类别,落在另一侧的属于另一个类别。
-
SVM的数学描述
假设我们有一个训练数据集 ( (x_1, y_1), (x_2, y_2), ···, (x_n, y_n) ),其中 ( x_i ) 是特征向量,( y_i ) 是对应的类别标签,取值为 ( {+1, -1} )。
SVM的优化目标是:
其