降维和度量学习
TODO
流形学习、度量学习
k近邻学习 kNN
给定测试样本后,基于某种距离度量在训练集中找出 k 个最近的训练样本,通过这 k 个样本来预测测试样本
在分类问题中,通常使用投票法,即出现最多的类别标记为预测结果;回归问题则使用平均法,即 k 个样本输出的加权平均值作为预测结果
属于懒惰学习机制:训练阶段仅仅保存样本,训练时间开销为零,在测试时才进行处理;训练阶段进行样本学习处理的称为急切学习
最近邻分类器 1NN
该分类器出错的情况为:测试样本的类别与其最近邻样本的类别不同,从而可得以下概率表示:
其中
将其错误率与贝叶斯最优分类器的错误率进行比较:
令贝叶斯最优分类器的结果为 (根据后验概率选择最有可能的类别):
由于
可得:
由于
即最近邻分类器的泛化错误率不超过贝叶斯最优分类器的两倍,但这一结论的前提是训练集数据点较为密集,若训练集维度过高,数据点较为分散时,最近邻分类器的正确率就会受到影响,由此引出了后续的降维操作
低维嵌入
维度灾难:样本稀疏而特征维数极高
降维:虽然收集到的样本可能具有很高的维度,但部分维度的信息可能与学习任务无关,即相关的信息可能仅是一个低维“嵌入” (embedding),因此,可以通过降维的手段提取其中重要的特征,常见的方法有:MDS、线性降维(将样本矩阵乘一个低维的线性矩阵进行变换)
主成分分析 PCA
一种线性降维方法,选择合适的特征维度,保证低维子空间对样本具有最大的可分性
样本点
设原数据的维度为:
其中
PCA 要求降维后每维特征尽可能分散 (样本在每一轴上都尽可能分散) 即要求映射后得到的矩阵
映射后的矩阵中各行的方差之和为:
中心化
由于应用 PCA 的数据需要进行中心化,所以上式中的
同时,矩阵每行的平方和等于矩阵平方的迹,由此完成最后一步变换
从而可得优化目标为:
对于上述受限的优化问题,使用拉格朗日乘子法来计算
由于拉格朗日只能求解最小化目标,因此将优化目标变换为:
可得拉格朗日函数:
其中的
接下来,对
矩阵求导
其中
其中的
由此转化为求矩阵
让我们回顾一下优化目标:
结合拉格朗日乘子法得到的式子:
对其同时左乘
从而转变优化目标为:
即选择最大的
PCA 的整体求解步骤如下:
计算均值向量
对所有数据点进行去中心化 (减去均值向量)
计算协方差矩阵
可通过协方差矩阵公式:
也可对去中心化后的数据构造样本矩阵:
各数据点以列向量形式表示,并通过 horizonal stack 形式堆叠,即:
将该矩阵与其转置相乘后,每个量乘
,得到的矩阵即为协方差矩阵计算特征值和特征向量
解如下方程计算特征值:
解得的
即为特征值,按从大到小排序将
代入求解其对应的特征向量:解得的
即为该特征值对应的特征向量 (可能需要归一化成单位向量)求解新坐标系映射
对于原始数据点,在去中心化后,乘以相应的坐标轴 (即上文中的特征向量) 对应的单位向量,即为该数据点在该坐标轴上的坐标
注意:坐标轴的先后顺序由其对应的特征值按照从大到小的顺序排列
方差解释率
该成分的特征值占所有特征值之和的比例
如求解第一主成分的方差解释率:
