一、支持向量机的概述
(一)基本概念
支持向量机(Support Vector Machine,SVM)是一种用于分类和回归的监督学习算法。SVM的目标是找到一个最优边界,将不同类别的数据点分开。在SVM中,我们把数据点看做是n维空间中的点,每个点有n个特征。
SVM的基本概念:
决策边界:在SVM中,我们通过找到一个超平面(或者说是一个线性决策边界),将不同类别的数据点分开。决策边界可以是直线、曲线或者高维空间中的超平面等形式。
支持向量:支持向量是离决策边界最近的样本点,它们对于决策边界的位置起着关键作用。SVM算法的核心思想就是寻找最优的决策边界和支持向量。
间隔:在SVM中,我们希望找到的决策边界能够在两个类别之间留出一个尽可能大的间隔,即最小化所有数据点与决策边界之间的距离。
核函数:SVM可以使用核函数将数据点映射到高维空间中,从而解决非线性可分的问题。常见的核函数包括线性核、多项式核和径向基函数(RBF)核等。
正则化:SVM在求解最优决策边界时,通常会添加一个正则化项,以避免过拟合的问题。
总之,SVM是一种强大的机器学习算法,广泛应用于分类、回归、异常检测等问题中。它的目标是找到一个最优边界,将不同类别的数据点分开,并且在处理非线性可分的问题时,使用核函数将数据点映射到高维空间中。
(二)硬间隔、软间隔和非线性SVM
- 硬间隔(Hard Margin)SVM: 硬间隔SVM是指在数据完全线性可分的情况下,通过寻找一个能够将不同类别样本完全分开的线性决策边界。它的目标是最大化间隔,使得所有数据点都位于决策边界之外,并且不存在任何分类错误。然而,硬间隔SVM对于数据中的噪声和异常点非常敏感,因为它要求所有数据点都必须被正确分类。
- 软间隔(Soft Margin)SVM: 软间隔SVM是在数据存在一定程度的重叠或噪声的情况下使用的。它允许一些样本点位于决策边界错误的一侧,以获得更好的泛化能力。软间隔SVM引入了松弛变量,它允许一些样本点位于决策边界的边缘区域或错误的一侧。目标是找到一个最优的决策边界,同时最小化松弛变量的数量和控制间隔的大小。
- 非线性SVM(Nonlinear SVM): 非线性SVM用于处理数据不是线性可分的情况。它通过引入核函数来将数据映射到高维空间中,使得在高维空间中的数据变得线性可分。常用的核函数包括线性核、多项式核和径向基函数(RBF)核等。非线性SVM可以将数据从原始特征空间映射到更高维的特征空间,并在该空间中寻找一个线性决策边界。
(三)算法思想
找到集合边缘上的若干数据(称为支持向量(Support Vector)),用这些点找出一个平面(称为决策面),使得支持向量到该平面的距离最大。
二、支持向量机求解
(一)基础知识
(1)任意超平面均可用下面的线性方程来表示:
(2)二维空间点 (𝑥, 𝑦)到直线 𝐴𝑥 + 𝐵𝑦 + 𝐶 =0 的距离公式是:
推广到 n 维空间,点到超平面的距离为:
其中,