降维

来源:互联网 发布:剑灵人男捏脸数据 编辑:程序博客网 时间:2024/06/05 23:39

为什么要降维?

找出规律,压缩数据量。

(1)特征值与特征向量

M矩阵,λ常数,e非零列向量

Me = λe (e为unit vector,第一个非零元素为正)


特征向量是单位向量;特征向量之间正交;特征向量矩阵E的特点,E*E^T = E^T*E = I。

(2)PCA(主成分分析)

利用特征向量进行降维。

原理:

将矩阵与一个正交单位向量矩阵相乘,意味着在欧式空间上的旋转。

求MM^T或者M^T的特征矩阵E,对高维数据进行旋转。

原数据变成在新的坐标上的投影。

新的坐标上,第一维是主特征向量指向的那个方向,能量最强。以后依次递减。使降维成为可能。

(3)SVD(奇异值分解)

r是A的秩(Rank)

A[m*n] = U[m*r] ∑[r*r] V[n*r]^T

U:左奇异向量(Left singular vectors),单位正交矩阵。

∑:奇异值矩阵(Singular values),对角阵。

V:右奇异向量(Right Singular vectors),单位正交矩阵。


基于SVD的降维:降概念强度最低的那一维。∑矩阵中对角线的值最小。

误差评估:Forbenius norm

实践中:保持80-90%的能量。

与PCA的关系:∑是AA^T的特征值对角阵;U是AA^T的特征向量矩阵;V是A^T*A的特征向量矩阵。

SVD的问题:结果难以解释?为什么那么多维度?

    U和V很Dense!占空间多。

(4)CUR分解

SVD存在问题。With SVD, even ifM is sparse, U and Vwill be dense. Σ, being diagonal, will be sparse, but Σ is usually much smaller than Uand V , so its sparseness does not help.

M = CUR

正确地选择行/列。

构造中间矩阵。

消除冗余的行/列。

原创粉丝点击