机器学习之支持向量机SVM

支持向量机(Support Vector Machine, SVM)是一种强大的有监督学习模型,主要用于分类,也可用于回归任务。它的核心思想是找到一个最优的超平面,将不同类别的数据点分隔开来,并且使这个超平面与最近的训练数据点(即支持向量:样本中距离超平面最近的一些点)之间的距离最大化 

1. 工作原理

1). 线性可分

在二维空间上,两类点被一条直线完全分开叫做线性可分
 
在最简单的情况下,如果数据点可以在多维空间中用一个直线(二维)或平面(高维)完全分开,那么SVM会寻找一个“最佳”的分割超平面。这个最佳超平面指的是分类间隔(Margin)最大的那个。 
  • 最大化间隔:SVM的目标是最大化超平面与最近的数据点之间的距离。
  • 支持向量:决定这个最大间隔的那些最近的数据点就被称为支持向量只有这些支持向量会影响最终的超平面位置,而其他不影响间隔的数据点对模型没有作用。
 
2. 非线性可分
当数据点不能被一个直线或平面分开时,SVM使用核技巧(Kernel Trick)来解决。 
  • 映射到高维空间:核技巧利用一个核函数(如高斯核、多项式核等),将原始的非线性数据映射到一个更高维度的特征空间
  • 线性可分:在这个高维空间中,数据变得线性可分,SVM再像处理线性可分数据一样,找到一个最优超平面。
  • 高效计算:核技巧的精妙之处在于,它避免了显式计算高维空间中的坐标,而是在低维空间中通过核函数来计算高维空间中的内积,从而大幅减少计算量。 
 
3. 软间隔(Soft Margin)
在实际应用中,数据集中往往存在一些异常点或噪声导致数据无法被完美分隔
  • 软化约束:软间隔允许模型在一定程度上容忍一些分类错误,即允许一些数据点越过间隔或甚至被错误分类。
  • 惩罚项:通过引入一个惩罚因子,SVM在最小化间隔的同时,也最小化这些错误的数量,以达到一个平衡。

2. 优缺点

优点
  • 有效处理高维数据:在处理特征数量大于样本数量的高维数据时表现出色。
  • 泛化能力强:由于最大化间隔的策略,SVM具有强大的泛化能力,能够有效地避免过拟合。
  • 依赖支持向量:模型只依赖于支持向量,这使得计算效率相对较高。
  • 处理非线性问题:通过核技巧,可以处理复杂的非线性分类问题。
  • 适用于小样本:在训练样本数量较少的情况下,也能取得不错的性能。
 
缺点
  • 计算开销大:在大规模数据集上,训练速度较慢。
  • 参数敏感:模型的性能对核函数和惩罚参数的选择比较敏感。
  • 多类别问题:SVM最初是为二分类设计的,处理多类别问题需要结合多个二分类器来实现。
  • 可解释性差:特别是使用非线性核函数时,模型的可解释性较差。

3. 应用场景

SVM因其强大的性能,在许多领域得到广泛应用。
  • 图像分类:例如,人脸识别和手写数字识别。
  • 文本分类:如垃圾邮件过滤和情感分析。
  • 生物信息学:如蛋白质分类。
  • 信号处理:用于信号识别和处理。
  • 金融风控:评估信用风险等。

未完待续...

参考:

  1. 《机器学习》 周志华
  2. 最优化问题的KKT条件
  3. 一文理解拉格朗日对偶和KKT条件
  4. 支持向量机通俗导论(理解SVM的三层境界)
  5. 【机器学习】支持向量机 SVM
  6. svm原理从头到尾详细推导

 

posted @ 2025-10-29 15:34  PKICA  阅读(9)  评论(0)    收藏  举报