降维简介
降维或嵌入式指将原始的高维数据映射到低维空间.
实质的想法:高度冗余的数据通常是可以被压缩的,即高维复杂的数据其内在的维度可能比较小,或与任务相关的维度比较小.
降维方法
- 维度选择
选择已有维度的一个子集 - 维度抽取
通过组合已有的维度构建新的维度
映射:原始空间 f : R d → R d ′ f:R^d \rightarrow R^{d'} f:Rd→Rd′,为了实际价值,我们要求 d ′ ≪ d d'\ll d d′≪d.
维度选择
- Pros
简单,流行,具有较好的泛华性能(不止近似距离). - Cons
没有精度保证,差的例子上错误很大(重尾分布),稀疏数据上大多数是0. - 手工移除特征
- 冗余的(multicollinearity/VIFs)
- 不相关(文本挖掘中的停用词)
- 质量差的特征(值得缺失比例超过50%)
- 监督方法
- 为每个特征打分:
- 训练或交叉验证单特征分类器
- 估计每个特征与分类label得互信息
- 用 χ 2 \chi^2 χ2统计量度量每个特征和类别之间的独立性
- 搜索有用的特征子集
- 前向
- 从零个特征开始
- 一遍式或迭代式地选择
- 后向
- 从所有特征开始
- 一遍式或迭代式地选择
- 前向
维度抽取
基础知识
矩阵和矩阵的乘法本质上式在做线性变换.
一个 m × n m\times n m×n实值矩阵 A A A对应一个线性变换 R n → R m R^n\rightarrow R^m Rn→Rm,映射向量 x ∈ R n x\in R^n x∈Rn到结果向量 A x ∈ R m Ax \in R^m Ax∈Rm.
特征分解
矩阵分解是将一个矩阵分解为几个矩阵的乘法.
高维矩阵的低秩近似.
输入:方阵
A
m
×
m
A_{m\times m}
Am×m
特征向量和特征值
A
v
=
λ
v
Av=\lambda v
Av=λv
v
v
v是矩阵的特征向量,
λ
\lambda
λ是对应的特征值,
v
T
v
=
I
v^Tv=I
vTv=I
A
=
V
Σ
V
−
1
A = V\Sigma V^{-1}
A=VΣV−1
V
V
V是矩阵的特征向量,
S
i
g
m
a
Sigma
Sigma是由特征值组成的对角阵
奇异值分解
输入:矩阵 A m × n A_{m\times n} Am×n
SVD
A
=
∑
i
=
1
r
σ
i
u
i
v
i
T
=
U
Σ
V
T
A = \sum_{i=1}^r\sigma_iu_iv_i^T = U\Sigma V^T
A=i=1∑rσiuiviT=UΣVT
Σ
=
[
θ
0
0
0
⋱
0
0
0
θ
r
]
\Sigma = \Bigg[ \begin{matrix} \theta&0&0\\ 0 & \ddots &0\\ 0 & 0 & \theta_r \end{matrix} \Bigg]
Σ=[θ000⋱000θr]
Σ
\Sigma
Σ中的各项
θ
\theta
θ为奇异值
u i u_i ui、 v i T v_i^T viT:奇异值 θ i \theta_i θi对应的向量
U T U = I , V T V = I U^TU=I, V^TV = I UTU=I,VTV=I: U U U和 V V V是正交矩阵
特征值或奇异值的物理意义
- 统计角度: 方差
- 物理角度: 能量
奇异值向量的含义
U ( V ) U(V) U(V)的每行、列代表一个方向
列与列、行与行之间相互正交
如果我们将 Σ \Sigma Σ中的奇异值降序排列,并且 U ( V ) U(V) U(V)中 u i ( v i T ) u_i(v_i^T) ui(viT)也相应调整
- u 1 u_1 u1:最大能量的方向
- u 2 u_2 u2:和 u 1 u_1 u1正交的能量最大的方向
- u 3 u_3 u3:和 u 1 u_1 u1、 u 2 u_2 u2正交的能量最大的方向
方法
常用的数据降维方法如下
线性方法
- PCA主成分分析
- LDA线性判别分析
- MDS多维缩放
非线性方法
局部嵌入
- 局部线性嵌入LLE
全局嵌入
- 等距离特征映射ISOMAP
- 核方法KPCA
- 拉普拉斯特征映射LE
- 自编码器
- TSNE