这里我省去了很多的数学知识,建议数学比较薄弱的读者可以先看看<信息检索导论>第18章。主要的数学知识包括方阵的特征值、特征向量;方阵的对角化;一般矩阵的奇异值分解及低秩逼近矩阵。这里主要讲解奇异值分解的两个应用PCA(降维)和LSA(潜在语义结构分析)。
PCA:
之前有详细讲过PCA,见:http://blog.youkuaiyun.com/lu597203933/article/details/41544547。这里主要想讲解从SVD的角度去解决PCA.
PCA主要是为了寻找数据随之变化的主轴,我们都知道主轴的方向即为样本通过zscore归一化(即归一化后的均值为0,方差为1)的数据协方差矩阵所对应的最大特征值所对应的特征向量。而我们知道svd的定义如下公式:
A = UDVT,这里假设A是m*n的矩阵,m是样本的数目,n为特征的数目。那么U为m*m的方阵且每一列都为A*AT单位正交化的特征向量,V为n*n的方阵且每一列都为AT*A单位正交化的特征向量,D为A*AT(或AT*A)的特征值的算术平方根构成的对角阵且为降序。
因此通过对数据进行归一化处理,AT*A即为n维特征多对应的协方差矩阵,因此V的topK列就是我们需要寻找的PCA降维的前K个主轴.我们将其标注为[u1,u2,u3,…uk]其中ui都是向量。那么对于样本数据x(i)(n维),[x(i)T*u1, x(i)T*u2,….x(i)T