周志华机器学习笔记-C10

降维与度量学习

各种数据降维的方法,在高维样本空间常用。

一、基于距离的监督学习

1、kNN:k近邻学习,给定测试样本,依照某距离度量找到最近邻的k个训练样本,分类即投票、回归即均值。没有显式训练过程,但可能出现k敏感、距离定义敏感等问题。在密采样假设下,误差不超过最优贝叶斯分类器的2倍。

2、数据降维:密采样kNN简单实用,但是在高维情况下存在样本需求数据量巨大、距离计算困难等问题,因此需要对数据进行有效降维,使得有限数据量也能在低维空间中不甚稀疏、距离计算也更加容易。

二、线性降维方法

即认为存在一个d×d’维变换矩阵W,使得m个d维样本由Z=W’X变换至d’维。

1、MDS算法:即尽可能保持降维前后距离一致性所获得的低维近似。指定低维维数,先计算高维距离矩阵,再根据高维距离矩阵计算低维距离矩阵,对低维距离矩阵进行特征值分解,截断到前d’个特征值,即可获得低维近似。

2、PCA主成分分析(其他名称:POD、部分语义下的SVD、因子分析Factor Analysis等):基于数据在超平面投影最近重构性或最大可分性的降维方法。最近重构性即认为W是正交矩阵,Z=W’X投影的重构形式为Xc=WZ,要求Xc与X距离最小;最大可分性即认为投影后样本点方差最大化。均可获得以下最优化问题:

实际使用时化为拉格朗日形式,求解XX’的特征值分解(常用奇异值分解代替),取前d’个特征值,其特征向量对应W,即PCA的输出。

三、非线性降维方法

可能出现线性降维无法处理的情况,如三维空间的复杂曲面若投影到平面总会丢失信息。

采用核主成分分析,即再将数据升维,在更高维的空间做PCA即可。只需将上述协方差阵替换为特征空间的协方差阵,这里的高维映射内积用核函数代替:

拓扑降维方法

即基于拓扑流形的降维,它直接将可降维的数据视为高维样本空间的子流形(即试图保持某种欧式空间中存在的关系,如度量、线性组合关系),适用于处理非线性降维。

1、等度量映射:典型为Isomap算法。认为高维空间中子流形的距离计算应当是测地线距离(具体实现可通过最短路径算法实现,此处体现非线性),求出所有点之间两两距离再根据此距离再做降维,可将其作为MDS算法输入(此处体现等度量)即得降维坐标输出。

2、局部线性嵌入LLE:试图保持邻域内样本间的线性关系。邻域线性关系wij由下式求解,它有闭式解:

求解出wij后根据下式求解低维(d’维)空间坐标:

度量学习

直接学习距离度量的方法,它认为降维本身就是在寻找一种合适的度量以提高学习器表现,只不过该度量可理解为经过原数据经过某种变换下的(欧式)度量,因此直接学习新的度量即可。

1、度量超参:必须放宽度量的某些定义(三角不等式)才能有可供调整学习的参数。常用马氏距离,M为任意待学习的半正定对称矩阵。

2、学习目标:如希望提高近邻分类器的性能(近邻成分分析NCA),可以将多数投票替换为概率投票,即采用以下表达,马氏距离最近者对分类的影响概率最大。

整个样本上的正确率可以表示为

进一步考虑到M=PP’,求解下式即可。

### 关于周志华机器学习》(西瓜书)第二章的学习笔记 #### 模型评估与选择概述 模型评估与选择是机器学习领域的重要组成部分,旨在通过合理的方法评价不同模型的表现并挑选最优者。这一过程不仅涉及如何衡量单个模型的好坏,还包括怎样对比多个候选方案以做出最佳决策。 #### 偏差、方差和噪声的概念解析 偏差度量了学习算法的期望预测与实际结果之间的差距,反映了算法自身的拟合精度;方差描述的是相同规模训练集变化引起的学习效果波动情况,体现了数据扰动带来的影响;而噪声则设定了给定任务下所有可能采用的学习方法能达到的最佳预期泛化误差界限,揭示了问题本身固有的复杂性和挑战性[^2]。 #### 性能度量指标——P-R图及其应用 为了更直观地展示各类分类器的工作特性,通常会绘制精确率-召回率(Precision-Recall, P-R)曲线来辅助分析。当面对多组实验结果时,可以通过观察这些图形相互间的位置关系来进行优劣评判:如果某条曲线始终位于另一条之上,则表明前者具有更好的整体表现;而对于那些存在交点的情况,则需进一步计算各自下方区域面积大小作为判断依据之一。此外,“平衡点”作为一种特殊的性能测度,在特定条件下也能提供有价值的参考信息[^3]。 #### 偏差-方差分解理论简介 该理论为理解学习算法的一般化能力提供了框架性的指导思路,通过对平均测试错误率实施拆分操作,可以深入剖析导致过拟合现象背后的原因所在,并据此探索改进措施的方向。具体而言,总误差由三部分构成——不可约减误差点(即噪声)、平方形式表达出来的偏差项以及线性累加而成的方差成分[^4]。 ```python import numpy as np from sklearn.model_selection import train_test_split from sklearn.metrics import precision_recall_curve, auc def evaluate_model_performance(model, X, y): """ 计算并返回PR曲线下面积(AUC),用于量化模型的整体性能。 参数: model (object): 已经训练好的分类模型实例。 X (array-like of shape (n_samples, n_features)): 测试特征矩阵。 y (array-like of shape (n_samples,)): 对应的真实标签向量。 返回: float: PR AUC得分。 """ # 划分训练集/验证集 X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2) # 使用训练集拟合模型 model.fit(X_train, y_train) # 获取验证集中各观测对应的概率估计值 probas_pred = model.predict_proba(X_val)[:, 1] # 绘制PR曲线并求得AUC分数 precisions, recalls, _ = precision_recall_curve(y_val, probas_pred) pr_auc_score = auc(recalls, precisions) return pr_auc_score ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值