SICI · 蕴灵宗 · 第四章

经典机器学习算法 · 炼气四层

你以为算法越多、特征越多就越强。可高维空间中所有点都变成近邻又都变成远点,距离失效,密度消失——没有免费午餐定理告诉你:不存在万能算法,只有合适的问题与合适的归纳偏置。

维度之咒低语:「二十术法,无一万能。你指给我看,哪个最强?账,我记着。」
序章

维度之门

二十术法,哪个才是万能的?

门楣上"术法"二字被虚空的寒气咬掉了一半。门内是碑林,二十座石碑各浮着一道算法铭文,金光明灭不定。石阶上飘着五面光屏,每一面都在吞吐数据,用的算法全然不同。门楣底座刻着一行小字:"二十术法,无一万能。选错算法,比没有算法更糟。"

网络之脉,神经元节点连接成网
高斯老祖 高斯老祖

「这是经典机器学习的二十种术法。你先回答一个问题:这五面屏里,哪一面用的是'最强算法'?」

维度之咒 维度之咒

「打个赌吧。五面屏里总有一面用的是'最强算法'——你指给我看。猜错一笔,我记一笔。账记满了,到 S9 一起算。」

算法碑林下注器 · 没有万能算法

反直觉下注(五选一)→ 逐一点亮看算法与任务匹配 → 算法谱系全景

维度之咒逼你下注:五面剪影屏,哪面用的是"最强算法"?逐个点击。
第一幕 · 自信建立

线性术法坛 · 最小二乘的基石

线性回归矩阵推导 / 维度之咒第一触手 / 岭回归与 Lasso

金纹石径尽头是一座悬空石坛,坛上摆着一组数据点——散在平面上,像一把撒开的星子。

高斯老祖 高斯老祖

「给你一组数据,找出一条直线让它离所有点最近。用矩阵推导。然后拖动维度滑块,看看特征数超过样本数时会发生什么。」

维度之咒 维度之咒

「加特征。把一维变成十维、百维。维度越高,拟合越好——这不是明摆着吗?」

最小二乘推导器 · 维度推演 + 正则化救赎

拖公式块完成五步推导 → 拖维度滑块触发 XᵀX 奇异 → 岭/Lasso λ 调节看权重

拟合直线 · 维度推演

特征维度 p p=1, n=10
λ 正则强度 λ=10
第一幕 · 自信膨胀

判别殿 · 分类之刃

逻辑回归 sigmoid / 交叉熵梯度 / 线性判别分析 LDA

殿中悬着两面碑:左面刻"逻辑回归",右面刻"LDA"。回归预测连续值,分类预测离散标签。

高斯老祖 高斯老祖

「逻辑回归用 sigmoid 把线性输出压进 (0,1) 概率;LDA 找一条投影方向,让类间散布最大、类内散布最小。推给我看。」

维度之咒 维度之咒

「分类嘛,特征越多分得越清。你把维度拉满,两类自然分得开。」

分类之刃 · sigmoid 推导 + 交叉熵 + LDA 投影

拖公式块推 sigmoid → 从最大似然推交叉熵梯度 → 拖 LDA 投影方向最大化 J(w)

sigmoid 曲线 · σ(z)=1/(1+e⁻ᶻ)

交叉熵 · 从最大似然来

LDA 投影 · 拖方向 w 最大化 J(w)=wᵀS_Bw/(wᵀS_Ww)

J(w) = 0.00 类间 S_B = 0 类内 S_W = 0
第一幕 · 第一崩塌

间隔裂谷 · 核技巧的深渊

SVM 最大间隔 / 对偶与 KKT / 核技巧升维 → 间隔消融

裂谷中央悬着一组线性不可分的数据——两类点纠缠在一起,没有任何直线能分开。

高斯老祖 高斯老祖

「SVM 不找直线——找最大间隔。可这组数据线性不可分。怎么办?推完对偶,用核技巧试试。」

维度之咒 维度之咒

「升维。用核技巧把它映到一百维、一千维、无限维。维度越高,越高维空间里总能找到超平面分开它们。这是你的万能钥匙。」

SVM 推导器 · 核维度滑块 + 间隔消融监控

拖公式块完成 SVM 五步推导 → 拖核维度滑块 2→1000 → 亲见间隔消融、距离趋同

SVM 间隔 · 核技巧升维可视化

核函数 核维度 d=2
间隔宽度
2.00
支持向量数
3
距离比 max/min
1.20
第二幕 · 挣扎

决策树之林 · 信息之斧

信息熵 / 信息增益·增益率·基尼 / 预剪枝与后剪枝

间隔裂谷之后是一片石林——每棵石树都是一个决策节点,枝干上刻着"如果特征 x>阈值,走左;否则走右"。

高斯老祖 高斯老祖

「决策树不量距离——它量信息。每次分裂,选信息增益最大的特征。可怎么量化'信息'?算给我看。」

维度之咒 维度之咒

「那你就多加特征。树总能找到一个分裂点把任何数据分开。」

信息之斧 · 熵计算 + 三指标对比 + 剪枝双曲线

拖动算信息熵 → 三指标对比选分裂特征 → 预/后剪枝看训练测试双曲线

信息熵 Ent(D)=−Σ pₖ log₂ pₖ

类别比例 Ent=1.00

三种分裂指标对比 · 点击选择最佳

剪枝实验 · 训练/测试准确率双曲线

第二幕 · 挣扎 · 核心

集成熔炉 · 众智成城

Bagging / 随机森林 / GBDT·XGBoost·LightGBM

熔炉里悬着三道碑文:Bagging、Boosting、Stacking。一棵树过拟合,那就种一百棵。

高斯老祖 高斯老祖

「Bagging 有放回采样并行训练,投票表决——降低方差。Boosting 串行训练,每棵树修正上一棵的错误——降低偏差。亲手搭给我看。」

维度之咒 维度之咒

「一百棵树。你觉得数量能解决质量问题?那你就加特征,加到一百维、一千维。看你的森林在高维里还能不能找到路。」

集成熔炉 · Bagging采样 + 随机森林 + GBDT残差

Bagging采样可视化 → 随机森林特征数滑块看OOB → GBDT残差逐轮下降

Bagging · 有放回采样并行训练

随机森林特征数 √p=4
OOB 估计:单棵树 72% → 100 棵投票 85%。全特征时树间相关性高,√p 时方差进一步下降。

Boosting · 串行拟合残差

第二幕 · 第二崩塌

近邻迷阵 · 距离之死

KNN 距离度量 / 维度之咒第二击 / 聚类同步崩塌

迷阵中央浮着一组数据——你一眼就能看出哪些点挨得近、哪些远。

高斯老祖 高斯老祖

「KNN 不训练——它记住所有训练点,来一个新点就算距离、找最近的 K 个邻居投票。简单,但有效。」

维度之咒 维度之咒

「有效?在低维确实有效。来,你把维度拉满——看看你的'最近邻'在高维里还剩多少意义。」

距离之死 · KNN + 维度滑块 + 距离比仪表 + 聚类崩塌

拖新点做KNN分类 → 拖维度滑块2→500 → 看距离比→1.0、准确率崩至瞎猜

KNN 决策边界 · 点击放置新点

数据维度 d d=2
最近邻距离
0.30
最远邻距离
5.20
比值 min/max
0.058

准确率曲线 · 维度↑准确率↓

聚类同步崩塌 · K-Means / 层次 / DBSCAN

第三幕 · 顿悟

概率先知祠 · 贝叶斯的回响

朴素贝叶斯 / GMM / EM 算法五步推导

先知祠里悬着一面旧碑,上刻贝叶斯公式——P(y|x)∝P(y)·P(x|y)。金色微光,像沉睡已久。

高斯老祖 高斯老祖

「距离死了,但概率没死。朴素贝叶斯不量距离——它量'在已知特征的前提下,属于哪类的概率最大'。GMM 用 EM 算法推断隐变量。推给我看。」

维度之咒 维度之咒

「概率也有假设。你的条件独立假设在高维里真的成立吗?」

贝叶斯的回响 · 朴素贝叶斯推导 + GMM + EM 五步

拖公式块推朴素贝叶斯 → 三种模型分支 → EM 五步推导 + 高斯分量迭代对齐

朴素贝叶斯推导

GMM 建模 · p(x)=Σ πₖN(x|μₖ,Σₖ)

迭代 0/8

EM 算法五步推导

第三幕 · 突破

降维之渊 · 维度的赎罪

PCA 特征值分解 / t-SNE 局部邻域 / UMAP 拓扑结构

深渊中央悬着一团高维数据——500 维,在虚空中像一团模糊的星云,看不清结构。

高斯老祖 高斯老祖

「维度之咒的根,在维度本身。你绕不过去——那就砍掉它。PCA 找方差最大的方向投影,t-SNE 保局部邻域结构,UMAP 保拓扑结构。砍到 2 维,看看这团星云的真面目。」

维度之咒 维度之咒

「砍维度?你丢掉的信息,谁来负责?」

维度的赎罪 · PCA + t-SNE + UMAP 三方法对比

PCA 特征值分解拖拽 → k滑块看累计方差 → t-SNE/UMAP 保邻域 → 500维降2维现出螺旋

PCA · 中心化→协方差→特征值分解→投影 Z=XVₖ

保留维度 k k=2
累计方差解释率:87%
方法保什么线性/非线性速度
PCA最大方差线性
t-SNE局部邻域概率非线性
UMAP拓扑结构非线性较快
第三幕 · 最高潮

Boss 战 · 维度之咒

三问对决 · 维度债翻阅 · 排除法收网

渊门砰然合拢。虚空寒气从四面八方涌来,在空中凝成一张脸——没有五官,只有无数个高维坐标轴交错成的网格。

维度之咒 维度之咒

「我不住在你的无知里——无知救不了我。我住在你'更多特征就是更多信息、更强算法就是更好算法'的幻觉里。三问。答得清,我散;答不清,你留在高维的虚空中——永远。」

维度债累计 0 笔 · 三问全对后清零

第三幕 · 收束

尾声 · 算法之环

算法选择之环 · 知识图谱回顾 · ch05 伏笔

咒散尽时金纹石径重新亮起,你手里的本命算法碑微微发烫——二十道铭文金光流转,但 SVM、KNN、聚类的铭文上还留着龟裂的细纹。

高斯老祖 高斯老祖

「你入门了。不是因为你背了二十种算法——背的会忘。是因为你摔过的每一跤,都刻在碑上了。可你从头到尾,特征都是自己挑的、维度都是自己降的。如果模型自己学特征呢?如果它有几十层、自己决定什么该看、什么该扔?」

算法之环 · 二十术法组装 + 知识图谱点亮

拖算法到环上正确位置 → 点亮知识碎片 → 境界突破

算法选择之环 · 拖算法到对应类别