1. k近邻学习 (kNN)
kNN 是一种常用的监督学习方法,其工作机制非常直观:对于给定的测试样本,在训练集中找到距离最近的 个样本,根据这 个“邻居”的信息进行预测 1。
- 分类与回归:分类问题通常采用投票法(少数服从多数);回归问题则采用平均法
- 学习方式:kNN 属于懒惰学习 (Lazy Learning),即训练阶段仅保存样本,不进行显式训练,待收到测试请求才处理 。相比之下,训练阶段就处理样本的方法称为“急切学习”
💡 晦涩点解析:1NN 的泛化错误率
课件中推导了最近邻分类器()的性能
公式: 解释:这意味着最近邻分类器的泛化错误率不超过贝叶斯最优分类器错误率的两倍 7。贝叶斯最优分类器是理论上的性能上限,这个结论从数学上证明了即便只看一个邻居,kNN 的效果也是有底线保证的。
2. 维数灾难与降维
维数灾难 (Curse of Dimensionality)
在高维空间下,数据样本会变得极其稀疏 8。
- 采样挑战:为了维持样本密度(密采样),所需的样本量随维数呈指数级增长 。例如,20维空间若要满足密采样,所需样本数可能超过宇宙粒子总数 。
- 计算困难:高维下距离计算变得困难,甚至连内积计算都不再容易
降维的动机
通过数学变换,将高维属性空间转变为低维子空间 (Subspace) 。
- 可行性:虽然原始维度高,但与任务相关的往往只是某种低维分布(低维嵌入)。
- 多维缩放 (MDS):降维的核心目标之一是保持距离。MDS 要求样本在低维空间中的欧氏距离等于原始空间中的距离。
3. 主成分分析 (PCA)
PCA 是最常用的线性降维方法。它试图寻找一个超平面对样本进行表达
- 核心准则:
- 最近重构性:样本点到超平面的距离足够近
- 最大可分性:样本点在超平面上的投影能尽可能分开(即方差最大化)
- 算法流程:
- 样本中心化(减去均值)
- 计算协方差矩阵
- 特征值分解,取最大的 个特征值对应的特征向量构成投影矩阵
4. 核化线性降维与流形学习
核化主成分分析 (KPCA)
当数据在原始空间中不是线性可分或映射关系非线性时,PCA 效果较差 21。KPCA 引入核技巧 (Kernel Trick),通过非线性映射将数据映射到高维特征空间,再在该空间执行 PCA
流形学习 (Manifold Learning)
流形学习假设高维数据实际上分布在一个低维流形上。流形在局部具有欧氏空间的性质(可计算距离)
- 等度量映射 (Isomap):核心是测地线 (Geodesic) 距离 。它认为高维空间中的直线距离(欧式距离)在流形上不可达,应通过近邻图计算两点间的最短路径来近似测地线距离
- 局部线性嵌入 (LLE):试图保持邻域内的线性重构关系 。即如果一个点在原空间可以由邻居线性表示,那么降维后这种表示系数应保持不变
5. 度量学习 (Metric Learning)
度量学习的本质是:与其通过降维寻找合适空间,不如直接学习一个合适的距离度量
💡 晦涩点解析:马氏距离 (Mahalanobis Distance)
公式: 29 解释:
- 普通的欧氏距离假设各属性权重相同且相互独立。
- 度量矩阵 :度量学习的目标就是学习这个
- 如果 (单位矩阵),它就是欧氏距离;如果 是对角阵,就是加权欧氏距离;如果 是普通的半正定对称矩阵,它可以处理属性间的相关性(如西瓜的重量和体积正相关)
监督学习中的度量
- 近邻成分分析 (NCA):通过优化概率投票法下的留一法(LOO)正确率来求取
- 约束学习:
- 必连 (Must-link):相似样本距离应尽可能小
- 勿连 (Cannot-link):不相似样本距离应大于某个阈值 通过求解凸优化问题来获得度量矩阵