7-5 高维数据向低维数据映射

定义:X是样本数据,每一行是一个数据,它有m个数据,每个数据有n个特征

X=[X1(1)X1(2)X1(n)X2(1)X2(2)X2(n)Xm(1)Xm(2)Xm(n)]X = \begin{bmatrix} X_1^{(1)} && X_1^{(2)} && \cdots && X_1^{(n)} \\ X_2^{(1)} && X_2^{(2)} && \cdots && X_2^{(n)} \\ \cdots && \cdots && \cdots && \cdots \\ X_m^{(1)} && X_m^{(2)} && \cdots && X_m^{(n)} \end{bmatrix}

$W_k$是求得的前k个主成分矩阵,每一行是一个主成分的单位方向,它有k个主成分方向,每个主成分的方向有n个维度

X=[Wk(1)W1(2)W1(n)W2(1)W2(2)W2(n)Wk(1)Wk(2)Wk(n)]X = \begin{bmatrix} W_k^{(1)} && W_1^{(2)} && \cdots && W_1^{(n)} \\ W_2^{(1)} && W_2^{(2)} && \cdots && W_2^{(n)} \\ \cdots && \cdots && \cdots && \cdots \\ W_k^{(1)} && W_k^{(2)} && \cdots && W_k^{(n)} \end{bmatrix}

问:如何将样本X从N维转换成K维? 答:降维:把所有样本映射到K个主成分上

XWkT=XkX \cdot W_k^T = X_k

还原:把降维后的数据还原到原坐标空间

XkWk=XmX_k \cdot W_k = X_m

还原后的X与原X不同。

把PCA封装成类

使用PCA降维

准备数据

训练模型1

输入:pca.components_ 输出:array([[ 0.75366776, 0.65725559], [-0.65723751, 0.75368352]])

训练模型2:降维

输入:X_reduction.shape 输出:(100, 1)

输入:X_restore.shape 输出:(100, 2)

对比原始数据与降维再恢复后的数据

Last updated