天天看点

《R语言数据挖掘》----1.13 数据降维

在分析复杂的多变量数据集时,降低维度往往是必要的,因为这样的数据集总是以高维形式呈现。因此,举例来说,从大量变量来建模的问题和基于定性数据多维分析的数据挖掘任务。同样,有很多方法可以用来对定性数据进行数据降维。

降低维度的目标就是通过两个或者多个比原先矩阵小很多的矩阵来取代大型矩阵,但原始矩阵可以被近似重构。通常是选取这些小矩阵的乘积来重构原始的矩阵,这一般会损失一些次要信息。

一个矩阵的特征向量是指该矩阵(下述方程中的a)乘以该特征向量(下述方程中的v)的结果为一个常数乘以该特征向量。这个常数就是关于该特征向量的特征值。一个矩阵可能有好几个特征向量。

av=λv

一个特征对就是特征向量及其特征值,也就是上式中的(v, λ)。

用于降维的主成分分析(principal component analysis,pca)技术将多维空间中的点集所构成的数据视为一个矩阵,其中行对应于点,列对应于维度。

该矩阵与其转置的乘积具有特征向量和特征值,其主特征向量可以看作空间中的方向,且沿着该方向,点排成最佳的直线。第二特征向量表示的方向使得源于主特征向量的偏差在该方向上是最大的。

主成分分析降维是通过最小化表示矩阵中给定列数的均方根误差来近似数据,用其少数的特征向量来表示矩阵中的点。

一个矩阵的奇异值分解(singular value decomposition,svd)由以下3个矩阵构成:

u

Σ

v

u和v是列正交的,其列向量是正交的且它们的长度为1。Σ是一个对角矩阵,其对角线上的值称为奇异值。原始矩阵等于u、Σ和v的转置的乘积。

当连接原始矩阵的行和列的概念较少时,奇异值分解是有用的。

当矩阵u和v通常与原始矩阵一样大时,采用奇异值分解降维。为了使用较少列的u和v,删除u、v和Σ中与最小奇异值对应的列。这样根据修正后的u、Σ和v重构原始矩阵时就最小化了误差。

cur分解旨在将一个稀疏矩阵分解成更小的稀疏矩阵,这些小矩阵的乘积近似于原始矩阵。

cur从一个给定的稀疏矩阵中选择一组列构成矩阵c和一组行构成矩阵r,c和r的作用就相当于奇异值分解中的u和v?t。行与列是根据一个分布随机选择的,该分布取决于元素平方和的平方根。在矩阵c和r之间有一个方阵称为u,它是由所选择的行与列的交集的伪逆(pseudo-inverse)所构造出来的。

继续阅读