资讯动态

吃瓜教程第六讲:支持向量机SVM从几何直觉到代码复现

发布时间:2026/10/22 14:47:16 来源:尧图企业网站定制
吃瓜教程的第六讲对应西瓜书第六章“支持向量机”SVM大概是整本《机器学习》教材里劝退率最高的一章。每次组队学习打卡走到这一周群里发言的人会肉眼可见地少一截剩下的多半是在问拉格朗日乘子到底是什么对偶问题为什么要对偶核函数是玄学吗如果你也正处于这个阶段这篇文章就是为你准备的。我结合自己参加组队学习的经验把第六章从几何直觉、数学推导到代码复现的完整路径拆开揉碎讲一遍顺便分享几个只有实际啃过才会知道的坑。1. 先给第六章“画像”它到底在解决什么问题1.1 SVM 在整张知识地图里的位置西瓜书共十六章前面几章讲了线性模型、决策树、神经网络而第六章“支持向量机”是判别式模型的另一条主线。它不是“又多了一个算法”而是把你之前见过的很多思路收拢到一个统一的优化框架里要找一个分类超平面这个超平面不仅能把训练集分开还希望它对没见过的样本也能分得稳。很多人初看这一章会觉得“前面决策树不是挺好吗为什么要发明这么复杂的东西”。其实两者解决的问题不同。决策树是在样本空间上递归划分而支持向量机是从“间隔”这个几何概念出发直接把分类问题变成一个带约束的优化问题。这个转变意义很大因为一旦你能把问题写成优化目标 约束条件后面所有数学工具拉格朗日乘子、对偶、KKT就都能用上了。习惯了这种建模方式再去看后面的概率图模型、深度学习里的正则化会觉得逻辑顺了很多。在组队学习的课程表里第六章通常被安排在“数学难度峰值”的位置。前面章节的公式密度远没有这一章高所以很多人第一次推公式就是在 SVM 这里。推不动不是因为你笨而是因为这一章默认你具备三样东西拉格朗日乘子法的直觉、矩阵求导的熟练度、以及把高维空间想象成几何体的能力。这三样没准备好课上到一半就会开始飘。1.2 吃瓜教程和南瓜书分别扮演什么角色西瓜书正文里的一些关键推导被省略了。比如从“最大化间隔”到“最小化 ||w||²”这一步教材直接给了结论没说清楚为什么可以这样等价。南瓜书就是专门补这些推导过程的注释版笔记它一章对一章把西瓜书里跳过的步骤逐步展开。吃瓜教程则是配套的视频讲解。它的特点是用很朴素的语言把公式背后的思路讲出来而不是对着 PPT 念推导。视频里经常用“吃瓜”这种生活化的比喻去解释几何间隔、对偶这些抽象概念看完之后再回头看书会觉得公式不是从天而降的。我自己的使用方法是这样的先看吃瓜教程视频建立直觉再打开西瓜书看正文逻辑最后对照南瓜书把跳过的公式亲手推一遍。注意顺序不能反先推公式再看视频容易钻牛角尖先建立直觉再看公式才不容易被符号淹没。这套组合拳打下来第六章的“硬骨头”会软很多。1.3 预备知识清单摸着哪些基础才能不被劝退如果现在你还没开始推第六章先花半天时间检查自己的数学工具箱。不需要全会但下面几样至少要有个“眼熟”的感觉。拉格朗日乘子法会用拉格朗日函数处理带等式约束的极值问题。第六章把它扩展到不等式约束所以先理解等式版本很有帮助。向量内积和范数知道 w^T x 的几何含义知道 ||w|| 表示长度。这部分是 SVM 一切推导的地基。矩阵求导的基本法则对向量求导、对矩阵求导能看懂 ∂(w^T x)/∂w x 这种式子就够了。凸优化的基本概念至少知道什么是凸函数、什么是约束集、KKT 条件大概是干嘛用的。如果拉格朗日乘子法完全没学过我建议先去任意一门数学公开课上把等式约束版本看一遍用“求椭圆上到原点最近的点”这种例子练几遍再回来啃 SVM 会顺畅很多。组队学习最怕的就是用一周时间同时补数学和算法两条线一起崩。宁可先花两天专门补微积分和线代也不要急着一头扎进第六章正文。2. 从“最大间隔”到数学语言支持向量机的原始形式2.1 几何直觉为什么超平面要“居中”想象二维平面上有两类点一类用圆表示一类用三角表示。可以画出无数条直线把两类点分开但哪条是“最好”的直觉上那条离两类点都足够远、像是走在马路中间的线对未知样本的容错能力最强。路边一棵树倒了可能影响靠近路边的车道但中间车道受影响最小。SVM 的“最大间隔”思想就是把这个直觉数学化。“间隔”margin的定义是样本点到超平面的最小距离的两倍。距离超平面最近的那些训练样本点被叫作“支持向量”support vector。它们像两根柱子一样撑起间隔边界整个分类超平面只由这些点决定其他点移动了只要不越过间隔边界就不影响超平面的位置。这个性质非常有意思。它决定的不是所有样本而是少数“站在边界上”的样本。在后面推导对偶问题时你会发现很多拉格朗日乘子 α_i 会变成 0非零的 α_i 恰好对应支持向量。这也是 SVM 名字的由来模型是由支持向量支撑起来的。2.2 函数间隔和几何间隔最容易混淆的两个概念西瓜书在这里引入了一对容易混淆的概念函数间隔和几何间隔。我当初在这里卡了很久后来发现关键就一句话函数间隔是可以被等比例缩放的“伪距离”几何间隔才是真实空间里的距离。对于超平面 w^T x b 0一个点 x_i 的函数间隔定义为 y_i(w^T x_i b)。注意这里乘上了类别标签 y_i取 1 或 -1目的是让正类点的间隔为正、负类点的间隔也为正这样“分对了”的函数间隔恒大于 0。但函数间隔有问题如果我把 w 和 b 同时乘以 2超平面本身没变函数间隔却变成了原来的 2 倍。这显然不是一个稳定的度量。于是要除以 ||w||得到几何间隔γ_i y_i(w^T x_i b) / ||w||这才是样本点到超平面的真实垂直距离。打个比方函数间隔就像是地图上的“图上距离”比例尺一变数值就变几何间隔是除以比例尺之后的“实际距离”跟地图放多大没关系。理解这个区别之后很多推导就不会迷路。后面说的“令函数间隔等于 1”并不是对距离做了什么奇怪的假设而是利用缩放不影响超平面这个性质人为地把尺度固定下来让优化问题有唯一解。2.3 目标函数怎么从“最大化间隔”变成“最小化 ||w||”从几何间隔出发我们要找的超平面是所有样本的几何间隔都尽量大也就是最大化最小几何间隔。整体间距是 2/||w||两条间隔边界之间的距离。于是原始问题写成max 2 / ||w|| s.t. y_i(w^T x_i b) ≥ 1这里约束的右边取 1不是天然的而是我们主动做的“归一化”。因为 w 和 b 可以等比缩放所以总可以让所有样本的函数间隔最小值恰好是 1。这样约束变成 y_i(w^T x_i b) ≥ 1支持向量恰好取到等号。最大化 2/||w|| 等价于最小化 ||w||²再配个 1/2 方便求导就得到min 1/2 ||w||² s.t. y_i(w^T x_i b) ≥ 1, i 1, 2, ..., m这就是 SVM 原始形式的优化问题。它是一个二次规划问题目标函数是凸的约束是线性的。从几何问题到凸优化问题的转化是 SVM 的第一个关键节点很多人走不到这里就放弃了但走到这一步其实已经赢了一半。2.4 南瓜书在这里补了什么西瓜书用一小段话就把“最大化间隔”转成了“最小化 ||w||²”推导细节藏在脚注里。南瓜书在这里花了整整一节把为什么可以令函数间隔为 1、为什么最大化 2/||w|| 等价于最小化 1/2||w||²以及约束条件怎么由几何间隔推出来每一步都写清楚。我自己踩过的坑是不知道函数间隔的“1”是可以人为设定的。当时一直想不通“凭什么约束右边是 1如果是别的数怎么办”。后来才明白超平面 w^T x b 0 和 2w^T x 2b 0 是同一个超平面。利用这个自由度把所有样本的函数间隔最小值强行压到 1优化目标从最大化间隔变成了最小化 ||w||。这个“缩放约定”是推导的隐含前提南瓜书把它摆在明面上省了很多自我怀疑。建议在这一节亲手推一遍从几何间隔定义出发加上“缩放不影响超平面”的说明写出带约束的优化目标再说明为什么二次方和 1/2 都是为了后续求导方便。这一步推顺了后面拉格朗日对偶才有基础。3. 对偶问题、KKT 条件与核函数数学魔术的真相3.1 为什么要引入拉格朗日对偶原始优化问题是凸二次规划看起来已经可以直接用现成优化包求解。但 SVM 真正强大的地方在于核函数而核函数要发挥作用就必须把问题转化到对偶空间。所以“为什么要对偶”这个问题比看起来更实际。构造拉格朗日函数L(w, b, α) 1/2 ||w||² Σ α_i [1 - y_i(w^T x_i b)]其中 α_i ≥ 0 是拉格朗日乘子。对 w 和 b 分别求偏导并令其为零得到两个关键结论w Σ α_i y_i x_i Σ α_i y_i 0第一个式子说明最优的 w 可以写成训练样本的线性组合组合系数是 α_i y_i。第二个式子是一个约束条件。把这两个式子代回拉格朗日函数w 和 b 就从拉格朗日函数里消掉了只剩下 αmax Σ α_i - 1/2 ΣΣ α_i α_j y_i y_j x_i^T x_j s.t. α_i ≥ 0, Σ α_i y_i 0这就是 SVM 的对偶问题。注意这里 max 是对 α 的而且约束变成两个简洁的等式 / 不等式。对偶问题之所以重要是因为目标函数里样本之间只以内积 x_i^T x_j 的形式出现。这个性质直接为核函数铺路只要把内积替换成核函数就能在低维空间悄悄完成高维映射。不过这引出了第一个坑为什么可以交换 min 和 max 的顺序原始问题是先对 w,b 取最小再对 α 取最大对偶问题是先对 α 取最大再对 w,b 取最小。这不是随便交换的。对于凸优化问题在一定约束条件下Slater 条件强对偶性成立两者最优值相等。西瓜书对这部分处理得很简略我建议先接受这个结论把注意力放在对偶问题本身的求解上等后续学了凸优化再回头补证明。3.2 KKT 条件不是摆设对偶问题求出的 α 必须满足 KKT 条件这是连接原始问题和对偶问题的桥梁。SVM 场景下 KKT 条件可以写成四条稳定性条件∂L/∂w 0, ∂L/∂b 0原始可行性y_i(w^T x_i b) ≥ 1对偶可行性α_i ≥ 0互补松弛α_i [1 - y_i(w^T x_i b)] 0互补松弛这条最有意思。它说明 α_i 和 (1 - y_i(w^T x_i b)) 这两个式子至少有一个是 0。如果 α_i 0那么 1 - y_i(w^T x_i b) 0也就是样本点在间隔边界上是支持向量如果样本点在间隔边界之内或之外那么 y_i(w^T x_i b) 1为了让乘积为 0必须有 α_i 0。这就在数学上证明了“超平面只由支持向量决定”。求解完对偶问题后w 用 w Σ α_i y_i x_i 恢复b 用任一 α_i 0 的样本代入 y_i(w^T x_i b) 1 求得。注意用所有支持向量算出的 b 应该一致实际计算时通常取平均值。3.3 核函数不是“黑魔法”而是内积替换当数据在原始空间线性不可分时想法很自然把样本映射到更高维的特征空间让它们在高维空间变得线性可分。比如一维空间里没法用一条线分开的数据投影到二维平面可能就能用一条线分开。但直接做高维映射会带来灾难性的计算量。假设原始特征有 1000 维映射到一个 100 万维的高维空间再去算两个向量的内积成本高得离谱。核函数的思路是我们根本不需要显式地计算高维映射只需要知道高维空间里的内积结果。对偶问题的目标函数里只出现 x_i^T x_j于是直接把内积替换成核函数k(x_i, x_j) φ(x_i)^T φ(x_j)只要这个核函数能够对应某一个特征映射 φ我们就可以在低维空间算出高维内积。这就是“核技巧”。它不是什么黑魔法而是一种计算上的偷懒把高维内积换成一个低维可算的函数。常用核函数里有四个需要记住线性核k(x_i, x_j) x_i^T x_j相当于不做映射适合本身就线性可分的数据。多项式核k(x_i, x_j) (x_i^T x_j c)^d映射到多项式特征空间。高斯核 / RBFk(x_i, x_j) exp(-γ||x_i - x_j||²)把样本映射到无穷维空间。Sigmoid 核k(x_i, x_j) tanh(α x_i^T x_j c)某些条件下和神经网络有关。RBF 是实际项目中最常用的默认选择。它的表达能力很强可以逼近任意形状的分类边界。但它也不是没有代价γ 参数太大时每个样本都只能影响自己周围极小范围导致决策边界像“鱼鳞”一样碎片化过拟合非常严重。后面代码部分我会专门演示这个现象。3.4 手推对偶问题时最容易错的三个点这部分我在组队学习打卡时反复看到有人问自己也错错过直接整理成一张速查表易错点错误表现正确做法拉格朗日乘子方向写成 α_i ≤ 0不等式约束 g(x) ≥ 0 对应的拉格朗日乘子 α ≥ 0求偏导化简w Σ α_i x_i漏掉 y_i注意 L 中 y_i 和 w^T x_i 一起出现求导后 α_i y_i x_i 不能丢代入消元的常数项符号错或系数错先把 1/2很多推导错误其实不是理解问题而是计算细心程度问题。我的经验是每推完一步停下来看维度是否正确、符号是否一致。比如 w 的表达式左边是向量右边 Σ α_i y_i x_i 也是向量维度对得上才说明式子没写歪。4. 软间隔、正则化与 SVR第六章的下半场4.1 软间隔是想明白“线性不可分也可以容忍”硬间隔有一个致命前提训练样本必须能被某个超平面完全正确分开。真实数据里总会有噪声、离群点如果为了完美分开训练集而让间隔变得极窄模型在测试集上往往表现更差。软间隔的思路是允许部分样本犯错。具体做法是引入松弛变量 ξ_i ≥ 0把原来的约束放松成y_i(w^T x_i b) ≥ 1 - ξ_iξ_i 的含义是第 i 个样本“越界”的程度。如果 ξ_i 0样本在正确一侧且至少有单位间隔如果 0 ξ_i 1样本落在间隔边界和超平面之间但分类仍然正确如果 ξ_i 1样本已经被错分了。目标函数相应变成min 1/2 ||w||² C Σ ξ_i这里 C 0 是一个惩罚参数。C 越大模型越不容忍犯错间隔越窄C 越小模型越倾向于获得更大的间隔允许更多样本越界。这个“间隔 vs 犯错”的取舍和正则化的思想一脉相承1/2||w||² 可以看作对模型复杂度的惩罚C Σ ξ_i 是对经验误差的惩罚C 就是两者之间的权衡系数。用 0/1 损失函数来看软间隔会更清晰0/1 损失是“错一个罚 1”但它不可导、非凸不好优化。SVM 实际用的是 hinge losshinge(z) max(0, 1 - z)z y_i(w^T x_i b)。当 z ≥ 1 时不产生损失当 z 1 时损失线性增长。这个损失函数间接等价于引入松弛变量的软间隔形式。理解了 hinge loss再去看机器学习竞赛里常说的 SVM 与逻辑回归的区别就很容易说清楚了逻辑回归用的是对数损失对所有样本都有轻微的梯度压力SVM 的 hinge loss 只对间隔内的样本敏感。4.2 支持向量回归 SVR换了个目标函数的世界SVM 是用来分类的但同一套“间隔”思想也可以搬到回归问题上这就是支持向量回归 SVR。分类的 SVM 是要找一个超平面让两类样本离它尽量远SVR 则是要找一条“管道”让大多数样本落在管道内管道外的样本才计算损失。具体来说SVR 设置一个阈值 ε允许预测值 f(x) 和真实值 y 之间有最多 ε 的偏差。偏差小于 ε 的样本不计损失偏差大于 ε 的部分计入损失Lε(z) 0 如果 |z| ≤ ε Lε(z) |z| - ε 如果 |z| ε这和控制 SVM 软间隔的思路完全对称分类里是间隔边界内的样本不计损失回归里是 ε 管道内的样本不计损失。目标函数的结构也几乎一样只是约束条件和引入的松弛变量个数略有不同。直觉上可以这样理解SVR 不是在找一条“穿过最多点的线”而是在找一条“能让它的 ε 管道覆盖最多数据点的线”。管道宽度 ε 由你先定ε 越大允许的误差越大模型越平滑。4.3 第六章末的“核方法”篇从 SVM 到表示定理西瓜书在第六章最后一节把视角从 SVM 拉高到了“核方法”。关键结论是表示定理只要优化问题的正则化项是关于 w 的单调递增函数那么最优解 w 一定能表示成训练样本的线性组合。这意味着核技巧不是 SVM 的专属工具而是所有满足这类形式的模型都能用的通用技巧。核线性判别分析、核主成分分析都是把线性模型中的样本内积替换成核函数从而获得非线性建模能力。学了这一节你对核函数的理解不应该停留在“SVM 的一个组件”而是一套连接线性模型与非线性世界的通用接口。组队学习讨论群里这一周最容易出现“数学焦虑”但焦虑的来源往往是对“公式要记到什么程度”的误解。我的建议是抓住三个量——w、b、α——把这三者的关系理清再去看核函数和软间隔这些扩展。不要追求一遍全懂SVM 的深度至少可以读三遍第一遍只抓“支持向量决定超平面”这句话第二遍才去抠对偶推导第三遍再回头体会核方法。5. 复现与实操用代码把 SVM 串起来5.1 选一个合适的数据集数学推导可以帮你建立理论直觉但把它落到能用、会调参代码这一环不能少。我用“双月”数据集来演示因为它是二维的画图就能直观看到决策边界长什么样。from sklearn.datasets import make_moons from sklearn.preprocessing import StandardScaler X, y make_moons(n_samples200, noise0.15, random_state42) X StandardScaler().fit_transform(X)“双月”数据天然非线性可分正好展示 RBF 核的威力。注意一定要做标准化。SVM 本身对特征尺度敏感如果不标准化数值范围大的特征会主导距离计算RBF 核里那个 ||x_i - x_j||² 会被大数值特征带偏。5.2 最小可行代码一个 sklearn 的 SVM在 sklearn 里实现一个 SVM 非常直接from sklearn.svm import SVC model SVC(kernelrbf, C1.0, gamma0.5) model.fit(X, y) print(model.support_) print(model.n_support_)kernelrbf 指用高斯核C 是软间隔惩罚系数gamma 是 RBF 核的参数。训练完之后可以画决策边界把网格点喂给模型的 predict 方法用等高线填色展示分类区域再把支持向量画出来。model.support_返回支持向量的索引。你会发现 200 个样本里支持向量通常只有十几个到几十个。把这个结果和前面互补松弛条件对应起来看理论一下子就有画面感了。调参时可以做一个网格扫描C 取 [0.1, 1, 10, 100]gamma 取 [0.01, 0.1, 1, 10]分别可视化决策边界。现象很直观gamma 太大时边界破碎复杂每个样本都变成一个小“孤岛”这是典型的过拟合C 太大时模型为了满足训练集而牺牲间隔边界也变得曲折C 太小时边界过于平滑甚至可能出现分类错误但间隔很大的情况。5.3 复现过程中常见的问题复现阶段最容易踩的坑一个是忘了标准化一个是混淆 C 和 gamma 的调参方向。还有一个容易被忽视的问题SVM 在类别不平衡时表现不佳。因为最大间隔的目标是尽量保证整体间隔最大少数类的支持向量很容易被多数类淹没。这时可以考虑调整 class_weight、使用更合适的采样策略或者改用能处理不平衡的变体。模型的“可解释性”方面线性核的系数 w 可以直接看出特征重要性RBF 核则没有这个便利。在业务上需要特征解释的场景通常先用线性核跑一个基线再用 RBF 做精度提升最后用线性核的权重做粗粒度的特征分析。5.4 手推一个 mini 例子加深理解代码能跑通只能说明你会调用接口真正吃透 SVM 还是需要手算一遍小例子。可以自己造一组非常简单的数据四个点两类各两个手工设定 α 的初值代入对偶问题求解最后验证哪些 α 非零。手推的意义不在于算得快而在于你会切身体会到三件事。第一支持向量恰好让约束取等号其余样本 α 为 0第二w 是所有 α_i y_i x_i 的加权和方向由支持向量决定第三b 用支持向量代回原始约束才能求出。这三件事从书上看和亲手算一遍是完全不同的体验。6. 组队学习中的实战心法与避坑清单6.1 时间分配建议七天版组队学习一般节奏是一周一个章节但 SVM 值得多花几天。我参加组队学习时采用了一个七天计划供参考天数任务产出第 1 天看吃瓜教程视频几何间隔、支持向量、原始问题用自己的话写“什么是间隔”第 2 天推拉格朗日对偶从 L 到对偶问题手写完整推导标注每一步依据第 3 天核函数四种核的定义与适用场景整理核函数对比表第 4 天软间隔与 hinge loss复述“C 如何影响间隔”第 5 天SVR 与核方法对照 SVM 和 SVR 的异同第 6 天代码复现 调参可视化跑通脚本并截图记录第 7 天用习题和讨论查漏补缺整理自己的问题清单这个计划的核心是“每天都有一点输出”。输出不一定是长篇笔记哪怕是给群里人讲清楚一个概念也算有效学习。组队学习里最容易出现的学习错觉是“视频看完了 我会了”而对抗这种错觉最好的办法就是输出。6.2 如何平衡“看视频”和“看书”吃瓜教程的视频是有倍速友好性的但倍速也要分段落。介绍背景、铺垫直觉的部分可以 2 倍速一进入推导环节就放回 1 倍速甚至 0.75 倍速。视频的意义是帮你省去“自己琢磨半天也没琢磨透”的时间不是替代你思考。只刷视频不看书是大忌。视频是线性的适合理解书是网状的适合定位和查漏。两遍以上的学习路径应该是这样的第一遍视频建立全局观第二遍看书把视频里略过的细节补上第三遍对照南瓜书把推导写到纸面上。三遍下来即使公式记不全逻辑脉络也一定清晰了。打卡输出的时候建议换一种表达方式不要抄书上的定义试着像一个朋友给你讲 SVM 那样写。如果你发现自己讲出来的东西自己都不信那个点就是理解缺口。6.3 讨论区问问题的技巧组队学习的讨论群是重要的学习资源但提问方式决定了你能得到多少帮助。我见过最无效的提问是“SVM 的拉格朗日对偶看不懂谁能讲讲”。这种问题太大别人不知道你卡在哪里。有效提问应该带上你的推导过程“我推到了 L 1/2||w||² Σ α_i(1 - y_i(w^T x_i b))然后对 w 求偏导得到 w Σ α_i y_i x_i但代入后 b 消掉了请问 b 去哪里了” 这个问题具体、可回答群里立刻就能有人帮你指出 b 已经在约束 Σ α_i y_i 0 里了。把问题拆小讨论效率会翻倍。6.4 避坑速查表SVM 学习中的高频坑坑点表现原因解法函数间隔归一化不明白约束右边为什么是 1没理解 w,b 等比缩放不改变超平面先推一遍“缩放等价性”拉格朗日乘子符号写出 α ≤ 0不等式约束方向搞反对照 KKT 条件的对偶可行性对偶问题中内积替换认为核函数需要显式知道 φ没理解核技巧是“用内积代高维”记住对偶问题只出现 x_i^T x_jRBF 过拟合决策边界像碎玻璃gamma 太大可视化调参gamma 从 0.1 往上扫特征尺度敏感不标准化效果差RBF 距离计算被大量纲特征主导先 StandardScaler 再训练类别不平衡少类被吞掉最大间隔目标本身不平衡调 class_weight 或用过采样这张表是我和身边做机器学习的朋友在交流中总结出来的覆盖了从理论学习到工程实现最常见的坑。你可以把它保存下来等真正踩到的时候回来查。7. 写在最后第六章教会我的三件事组队学习结束后回头看我发现自己从第六章得到的远不止 SVM 这个算法本身。第一件是“不要被公式数量吓倒”。这章的公式再多核心线索只有一条从几何间隔出发写出优化目标转对偶换核函数加软间隔。抓住主线细节再多也只是细枝末节。第二件是“数学推导的目的不是背公式而是建立直觉”。你只有亲手推过拉格朗日对偶才会相信核函数不是玄学只有亲眼看过 alpha 非零的样本点恰好是可视化里的支持向量才会真正理解这本书想表达的东西。第三件是“组队学习里最好的老师是输出”。群里的每一次提问、每一次打卡总结、每一次给别人讲解都比刷三遍视频更有效。SVM 学完之后再看后面第八章集成学习里的“多样性”、第十五章概率图模型的“条件独立性”你的思路会开阔很多。因为 SVM 已经帮你练会了一件事把一个看起来像几何的问题写成数学语言再用优化工具去解。这个能力会伴随你读完整本书。第六章是一座山爬的时候确实累但翻过去之后视野完全不同。如果你现在正卡在对偶问题或者核函数那里别慌按着这个路线再走一遍实在推不动就去讨论群里把问题拆小了问出来。撑过这一章后面会轻松很多。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑