为什么要降维?
找出规律,压缩数据量。
(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 if M is sparse, U and V will be dense. Σ, being diagonal, will be sparse, but Σ is usually much smaller than U and V , so its sparseness does not help.
M = CUR
正确地选择行/列。
构造中间矩阵。
消除冗余的行/列。