机器学习:支持向量机

目录

SVM的基本概念

“支持向量”是什么?

最大间隔的概念:让分界线尽可能远离所有点

处理非线性:核技巧(Kernel Trick)

软间隔:允许少量错误

应用场景和优缺点

形象总结


SVM的基本概念

支持向量机(Support Vector Machine,SVM)是一种用于分类和回归的监督学习算法(主要用于分类问题,但也可以用于回归)。

核心思想是找到一个最优的超平面(即是 "最优分界线" )来分开不同类别的数据点。(超平面 另一个更直观的说法是:决策边界)

  • 问题场景:假设你的数据是二维平面上的点,分两类(比如⚪和×),SVM的目标是画一条直线(或高维空间的“超平面”),把两类点分开。
  • 关键点:这条线不仅要能分开两类,还要让两类中离这条线最近的点的距离尽可能远(这条距离称为间隔)。间隔越大,分类的容错能力越强。

总结:分类算法,找最优分界线

“支持向量”是什么?

支持向量是离超平面最近的那些数据点(如图中的⚪和×),它们决定了超平面的位置和方向(这部分很重要,因为这是SVM命名的由来。分界线的位置只由这些支持向量决定,其他点移动甚至删除都不会影响分界线。)

我举个例子来说明,比如这些点就像是支撑着边界的柱子,移动它们就会改变边界的位置。

总结:最近的点,决定分界线

最大间隔的概念:让分界线尽可能远离所有点

SVM不仅找一个分隔的超平面,还要找间隔最大的那个。(SVM不是随便画一条分界线)

间隔指的是两个类别最近点之间的距离。

最大化间隔可以提高模型的泛化能力,减少过拟合。(即使新数据有轻微误差,也能正确分类)

比如在两堆点之间找到最宽的一条路,这样即使有新数据,分类的错误率也会更低。

数学实现:通过优化算法(如拉格朗日乘数法)计算最大间隔。

总结:最宽的分隔带,提高泛化

处理非线性:核技巧(Kernel Trick)

  • 问题:数据在平面上无法用直线分开(比如环形分布),SVM会用 核函数 把它的数据投射到三维空间(更高维空间),用平面来切分,然后再投影回二维,这样原来的直线可能变成了曲线。
  • 常见核函数:多项式核、高斯核(RBF核)等。
  • 效果:原本复杂的分界线,通过核函数变得简单。

总结:核函数把数据映射到高维空间,找到分界线,使其线性可分

软间隔:允许少量错误

软间隔就是允许一些数据点出现在间隔内,甚至错误的一侧,这样可以处理噪声或重叠数据。

需要引入  松弛变量 (SVM允许一些点跨过分界线或进入间隔内)和  惩罚系数C ,通过参数C控制分类错误的容忍度:

  • C大:严格分界,容易过拟合。
  • C小:允许更多错误,模型更宽松。

比如,有些点可能离群,这时候放宽间隔,可以避免模型过于严格,导致泛化能力差。

总结:允许错误,处理噪声

应用场景和优缺点

SVM适合中小型数据集,高维数据,比如文本分类、图像识别等。

  • 优点是在高维有效,间隔最大化提供良好的泛化能力
  • 缺点是大数据集训练慢,需要调参和核函数选择(C值)

形象总结

想象SVM是在两堆点之间修一条最宽的马路(最大间隔),马路的边缘由最近的几个点(支持向量)决定。如果马路修不直,就用“魔法”(核函数)把点变到另一个空间再修路,最后变回来就是弯的。

你可能感兴趣的:(机器学习,支持向量机,机器学习,人工智能)