机器学习(3)-支持向量机
支持向量机
支持向量机(Support Vector Machine,SVM)是一种用于分类和回归分析的监督学习算法。它的主要目标是找到一个超平面,将数据集划分成两个类别,同时使得两个类别中距离最近的数据点到该超平面的距离最大化。这两个最近的数据点被称为支持向量。
SVM 可以使用核函数来处理非线性可分的数据。核函数可以将输入特征映射到高维空间,从而在高维空间中找到一个线性超平面来解决原始空间中的非线性问题。
支持向量机公式
硬间隔支持向量机(Hard Margin SVM)
硬间隔支持向量机适用于线性可分的数据集。
\subsubsection*{优化问题}
目标是最大化间隔,同时保证所有样本都正确分类:
约束条件:
其中:
- $ \mathbf{w} $ 是权重向量。
- $ b $ 是偏置项。
- $ \mathbf{x}_i $ 是第 $ i $ 个样本的特征向量。
- $ y_i $ 是第 $ i $ 个样本的标签,取值为 $ \pm 1 $。
软间隔支持向量机(Soft Margin SVM)
软间隔支持向量机适用于线性不可分的数据集,允许一定程度的误分类。
\subsubsection*{优化问题}
目标是最大化间隔,同时引入松弛变量 $ \xi_i $ 来允许一些样本在间隔内部或错误分类:
约束条件:
其中:
- $ C $ 是正则化参数,控制误分类和间隔大小之间的平衡。
- $ \xi_i $ 是松弛变量,表示第 $ i $ 个样本允许的误分类程度。
对偶问题
通过拉格朗日乘子法,可以将原始问题转化为对偶问题。
\subsubsection*{拉格朗日函数}
其中:
- $ \alpha_i $ 是拉格朗日乘子。
- $ \mu_i $ 是非负的拉格朗日乘子。
\subsubsection*{对偶问题}
通过求解拉格朗日函数关于 $ \mathbf{w} $ 和 $ b $ 的偏导数并令其为零,可以得到对偶问题:
约束条件:
决策函数
通过求解对偶问题,可以得到支持向量机的决策函数:
其中,只有当 $ \alpha_i > 0 $ 时,对应的样本 $ \mathbf{x}_i $ 才是支持向量。
核技巧(Kernel Trick)
对于非线性可分的数据集,可以通过核函数将数据映射到高维空间,使数据在高维空间中线性可分。
常见的核函数
线性核:
多项式核:
高斯核(RBF核):
Sigmoid核:
机器学习(3)-支持向量机
install_url
to use ShareThis. Please set it in _config.yml
.