为什么要降维? 找出规律,压缩数据量。
特征值与特征向量
M矩阵,λ常数,e非零列向量
Me = λe (e为unit vector,第一个非零元素为正)
特征向量是单位向量;特征向量之间正交;特征向量矩阵E的特点,E*E^T = E^T*E = I。
一、PCA(主成分分析)
利用特征向量进行降维。
原理:
将矩阵与一个正交单位向量矩阵相乘,意味着在欧式空间上的旋转。
求MM^T或者M^T的特征矩阵E,对高维数据进行旋转。
原数据变成在新的坐标上的投影。
新的坐标上,第一维是主特征向量指向的那个方向,能量最强。以后依次递减。使降维成为可能。
二、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!占空间多。
三、CUR分解
SVD存在问题。在SVD中, 即便M稀疏, U和V仍然密集。而对称矩阵 Σ是稀疏的, 但 Σ 通常比U和V小得多,因此其稀疏性起不到作用。
M = CUR
正确地选择行/列。
构造中间矩阵。
消除冗余的行/列。