一、简介
1.降维
降维或嵌入是指将原始的高维数据映射到低维空间。
2.降维方法
维度选择:选择已有维度的一个子集
维度抽取:通过组合已有的维度构建新的维度
二、维度选择
1.采样:从D维中随机选择D'维
优点:简单,流行,具有较好的泛化能力(不止近似距离)。缺点:没有精度保证。差的例子上错误很大(重尾分布),稀疏数据上大多数是0.。
2.手工:手工移除特征
移除冗余的、不相关(文本挖掘中的停用词)、质量差(特征的缺失比例超过50%)、方差过小的特征。
3.过滤式维度
- 过滤式维度选择通过设计一个相关统计量来度量特征的重要性。过滤式维度选择根据单个特征与目标之间统计分数选择特征,速度快,但缺点是没有考虑到特征之间的关联作用。
- 统计量:
- 相关系数:单个特征与标签y之间的相关系数(回归问题)
- 互信息:单个特征和分类标签y的互信息(y为离散值)
- 统计量:单个特征和分类标签y之间的独立性。测试两个类别型变量的分布是否独立,统计量越小,特征和类别越独立。
- 信息增益:当特征出现或者不出现时,预测的熵的减少。
4.包裹式选择
用最终要用的学习器的性能评价特征的重要性。
搜索有用的特征子集:1.前向:从零个特征开始;一遍式或者迭代式地选择。2.后向(更常用,递归特征删除):用所有特征训练一个模型,得到特征重要性;根据特征重要性,每次删除最不重要的一些特征。(是否删除/增加特征,需要进行模型性能监控。)
5.嵌入式选择
嵌入式维度选择与模型训练一起完成。
基于L1正则的特征选择:得到的系数可能是稀疏的,选择非0系数即可实现特征选择Lasso回归、Logistic回归、SVM
基于树模型的特征选择:在基于树的模型(CART、随机森林、GBDT等)中,树中从根节点到叶子结点的路径上的特征,为模型选择的特征,不在树中出现的特征没有被模型选中。
三、维度抽取
1.线性模型
1.MDS
高维空间点两两之间的距离矩阵尽可能接近低维空间的距离矩阵。
,
DJ为从D中的每个元素里减去列均值,JDJ的作用就是在此基础上再减去行均值。中心化矩阵的作用就是把元素的中心平移到坐标原点。
对B做特征值分解: ,则
算法:
- 输入:距离矩阵,低维空间的维数:D'
- 算法过程:
- 输入,计算
- 计算,
- 对B做特征值分解
- 是包含D'个最大特征值的对角矩阵,是特征向量组成的矩阵
- 输出:
2.PCA
线性降维的一般形式:
- 数据点:
- 新空间的数据点:
- 选择D'个方向向量
- 将X投影到新空间:
PCA目标函数1:最小化重建误差
假定为新的坐标系
W用在两个函数中:
编码:是在低维坐标系下的坐标
解码:是基于zi重构得到的向量
目标:最小平方重建误差和
PCA目标函数2:最大投影后的方差
算法1:
- 输入:,低维空间的维度:D'
- 算法过程:
- 计算
- 对S做特征分解
- D'最大特征值对应的特征向量:
- 输出:
算法2:
- 输入:,低维空间的维度:D'
- 算法过程:
- 奇异值分解
- D'最大特征值对应的特征向量:
- 输出:
PCA的优点:特征向量方法;没有额外要调节的参数;没有迭代;没有局部最小值。缺点:只用于二阶统计量,不能处理高阶依赖;受限于线性投影。
2.非线性模型
1.核PCA
PCA中,投影向量/主成分方向为的线性组合。PCA转换成特征值问题:
PCA优化目标:
核PCA的目标:用K表示,则,代入可得到第d个投影方向,则
KPCA算法:
- 计算K,,获得中心化的K:
- 对做特征分解
- 选择D'个最大的特征值对应的特征向量(为N维向量,通常对进行归一化,模长为1)
- 对于新样本x,可得到其低维表示z为:
3.流形学习:结构保持/距离保持
流形是一个局部具有欧氏距离性质的拓扑空间,可以近似好地满足任意高维空间的子空间。
1.全局距离保持:ISOMAP
测地距离:邻近的点:输入空间的欧式距离提供一个测地线距离的近似。较远的点:测点距离能够通过一系列邻域点之间的欧氏距离的累加近似。
构建邻接图(类似谱聚类中的相似图构建方式):邻域;K近邻
计算最短路径:Floyd算法:O(N3);Dijkstra算法:O(KN2logN),其中K为近邻数
2.局部距离保持:Laplacian Eigenmaps
令,构造相似性图来表示结点之间的邻接关系(邻域、K近邻),通过对图的Laplace矩阵进行特征值分解得到映射。
构建特征映射:需要最小化的目标函数:,则
为了去掉嵌入向量中任意的尺度因子,添加约束
优化问题可被写成
3.局部优先、兼顾全局特征保存
1.T-NSE(高维数据降到2维或者3维)
原始空间中的相似度由高斯联合概率表示,嵌入空间的相似度由“T分布”表示。
- 给定高维空间中的N个数据点:,映射到低维空间,对应点为
- 高维空间中的两个数据点xj和xi之间的相似度用以数据点xi为中心点的高斯分布表示:
- 低维空间中的两个数据点zj和zi之间的相似度自由度为1的T分布重新定义表示:
- 若zj和zi真实反映高维数据点xj和xi之间的关系,则pij与qij应该完全相等。
- 复杂度:O(NlogN)
- 数据点xj和xi之间的相似度用联合分布表示:
- 由于数据分布稠度不均,对每个数据点确定参数很困难,T-NSE实现时采用参数困惑度:
- 用KL散度衡量两个分布之间的距离:。KL散度具有不对称性:在地位映射中不同的距离对应的惩罚权重不同。当高维空间中两个点距离较远即pij较小,在低维空间中对应两个点的距离较近即qij较大,则此时代价较小。
- 混淆度:每个点的局部邻居的数目。
T-SNE的缺点:时间、空间复杂度为O(N2)。由于目标函数飞途,算法执行结果是随机的,可多次运行选取最好的结果。全局结构未明确保留,可通过PCA初始化来缓解。主要用于可视化,很难用于其他目的。
2.UMAP(均匀流形逼近和投影)
假设可用数据样本均匀分布在拓扑空间中,可从这些有限数据样本近似并映射到低维空间。
步骤:
- 学习高维空间中的流形结构:1.寻找K近邻算法2.根据K近邻,构建相似图
- 找到该流形的低维表示:在低维空间中两个点的最近距离