You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

支持向量的推导、预测机制及特定矩阵场景计算问题咨询

我来一步步拆解你的问题,作为经常和SVM打交道的从业者,我会尽量用清晰的逻辑和实例来解释:

一、Support Vectors的推导过程与标签预测机制

推导过程

SVM的核心目标是找到能最大化两类样本间隔的最优超平面,我们从线性可分场景开始推导:

  1. 先定义超平面为 $w·x + b = 0$,其中$w$是权重向量,$b$是偏置。对于任意样本$(x_i, y_i)$($y_i ∈ \{+1, -1\}$),需满足$y_i(w·x_i + b) ≥ 1$(间隔边界约束)。
  2. 样本到超平面的间隔大小是 $\frac{2}{||w||}$,最大化间隔等价于最小化 $\frac{1}{2}||w||^2$(加入$\frac{1}{2}$是为了求导时简化计算)。
  3. 引入拉格朗日乘数法构造拉格朗日函数:
    $L(w, b, α) = \frac{1}{2}||w||^2 - \sum_{i=1}^n α_i(y_i(w·x_i + b) - 1)$,其中$α_i ≥ 0$是拉格朗日乘数。
  4. 对$w$和$b$求偏导并令结果为0,得到两个关键等式:
    • $w = \sum_{i=1}^n α_i y_i x_i$(权重由样本线性组合而成)
    • $\sum_{i=1}^n α_i y_i = 0$
  5. 将上述结果代入拉格朗日函数,转化为对偶优化问题:最大化$\sum_{i=1}^n α_i - \frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n α_iα_j y_i y_j(x_i·x_j)$,约束条件为$α_i ≥ 0$和$\sum_{i=1}^n α_i y_i = 0$。
  6. 根据KKT条件,只有当$y_i(w·x_i + b) = 1$时,$α_i > 0$——这些样本就是Support Vectors,它们是决定超平面的核心样本,其他样本对超平面的位置没有影响。

标签预测机制

预测时使用决策函数:
$f(x) = sign(w·x + b)$
结合$w = \sum_{i=1}^n α_i y_i x_i$(仅支持向量的$α_i > 0$,非支持向量可忽略),可改写为:
$f(x) = sign(\sum_{SV} α_i y_i (x_i·x) + b)$
简单来说,就是把待预测样本和所有支持向量计算内积,加权求和后加上偏置,最后取符号得到类别标签(+1或-1)。如果是非线性SVM,会用核函数$K(x_i, x)$代替内积$x_i·x$。

二、给定Support Vectors矩阵的计算方式解释

你提到训练用3×3矩阵$A$(每行是一个3维样本)和标签向量$b$,训练后得到的Support Vectors矩阵是3×3,第1、3行相同,第2行是第1/3行的一半。这里需要明确:

  • Support Vectors本身不是“计算生成”的,而是从训练样本中筛选出来的——只有拉格朗日乘数$α_i > 0$的训练样本才会成为支持向量。
  • 这种情况说明三个训练样本都成为了支持向量,原因大概率是:
    1. 第1、3行相同,意味着训练集中这两个样本特征完全一致,且标签$y_1 = y_3$(否则线性不可分,需引入软间隔,但这里假设是线性可分场景)。
    2. 第2行是第1/3行的一半,假设这个样本的标签$y_2$与$y_1/y_3$相反。比如$x_1 = x_3 = [a, b, c]$,$x_2 = [a/2, b/2, c/2]$,标签$b = [1, -1, 1]$。此时三个样本刚好落在间隔边界上:
      • 对$x_1$和$x_3$:$y_1(w·x_1 + b) = 1$
      • 对$x_2$:$y_2(w·x_2 + b) = 1$
        代入$w = α_1 y_1 x_1 + α_2 y_2 x_2 + α_3 y_3 x_3$,结合$\sum α_i y_i = 0$(即$α_1 + α_3 - α_2 = 0$),可以解出满足条件的$α_i > 0$,因此三个样本都被选为支持向量,最终的Support Vectors矩阵就是这三个训练样本的集合。
三、预测结果返回3的生成逻辑

SVM默认二分类输出是+1或-1,但这里返回3,大概率是多分类SVM的场景,具体逻辑如下:

  1. 多分类SVM常用两种策略:
    • 一对多(One-vs-Rest):为每个类别训练一个二分类SVM,判断样本属于该类别还是其他类别。预测时,对每个类别计算决策函数的原始得分(未取符号的$w_k·s + b_k$),选择得分最高的类别作为输出。
    • 一对一(One-vs-One):为每对类别训练一个二分类SVM,预测时通过投票机制确定最终类别。
  2. 这里返回3,说明你的SVM是多分类模型,且待预测向量s在类别3对应的决策逻辑中获得了最高优先级(要么是一对多中得分最高,要么是一对一中得票最多),因此模型输出类别标签3。
    • 举个实例:如果是一对多策略,类别3的SVM计算出的$w_3·s + b_3 = 5$,而类别1和2的得分分别是2和-1,那么模型就会判定s属于类别3。
参考资料(含实例的数学资料)
  • 《统计学习方法》(李航):第7章详细覆盖了SVM的推导、支持向量的定义、线性/非线性SVM的实现,包含线性可分样本的数值实例,清晰展示支持向量如何决定超平面,以及多分类SVM的策略。
  • 《Pattern Recognition and Machine Learning》(Christopher M. Bishop):第7章从概率和优化的双重角度讲解SVM,有几何直观的实例,以及核函数的数学推导,帮助理解非线性SVM中支持向量的作用。
  • 斯坦福CS229机器学习讲义(Support Vector Machines章节):提供了step-by-step的推导过程,包含二维分类的简单实例,通过具体的数值计算展示支持向量的筛选和预测过程。

内容的提问来源于stack exchange,提问作者user6283344

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:31:24