毕业论文就是搞得这个,本以为这么一弄,对PCA的掌握应该就算差不多了,没想到今天排练ppt讲稿的时候,我的另外一个导师一语道破天机——PCA建模预报的方法。
今天收获不小,总结一下,免得以后忘记。
PCA投影分类:
有N个样本,直接用PCA投影,就可以看到它们的分类情况。在SVD的过程中,得到USV三个矩阵,U就是得分矩阵,V是载荷矩阵。如果在数据矩阵X中,每一个样本是按照行来排列的,即X是一个N行M列的矩阵,M等于变量数。那么,U就有N行,U的每一列对应一个主成分。V有M行,转置之后就有M列,转置之后每一行对应着一个主成分,即第一行对应PC1,第二行对应PC2...
下图是对转置以后的V的解释
PCA的建模
正确的方法是:
先建立一个训练样本,假设N个,组成矩阵X,然后SVD分解,得到V(注意,这里V没有转置)
新来的样本。组成矩阵Y,用这个矩阵Y和 v相乘,即Y* v(因为 v没有转置,所以 v的行数=变量数,Y的列数=变量数,所以可以Y* v)
注意,这里红色的 v只是由原来的建模得到的V中部分列所组成的。
那么,红色的 v的列是怎么组成呢?没转置前,V的列对应主成分PC,所以,如果建模使用的是PC1和PC2投影,那就这里的 v就用原来建模得到的V的第一列和第二列组成,其他主成分的以此类推
这样,Y* v就可以得到一个U',这个U有N行,列数等于V中选择的主成分数,一般,如果平面投影,那么U'就是两列,这里的U的意义和一开始建模时得到的SVD分解的U意义相同。
用这个U',投影到原来的投影图上,就可以观察新的待测样本在建模的样本形成的空间上分布情况,如果建模时,样本分为3类,待测样本数与其中一类,那么最终投影图上,待测样本应该分布在对应类的建模样本点大致的范围(这里要说明的是所有数据全部没有异常,都是正常的标准样本)。
如果还是用建模的那些样本矩阵X去和红色的 v相乘,那么得到的U'和建模的U的完全一样(烈、完全一样是指对应的列),即:假设选择组成分PC1和PC2,那么U',只有两列,它和U的第一类第二列完全一样。
这才是建模预报的方法。
原来的将建模数据和测试数据组成一个矩阵再投影的方法只能用于观察整个样本的分类情况,用于预报导师说不太合理。