美文网首页
PCA编程实现小结

PCA编程实现小结

作者: Jana_LU | 来源:发表于2019-08-22 15:15 被阅读0次

    分析思路:

    先导入pandas、numpy包;

    定义一个myPCA,传入data及n_components参数,并设置components为1000000维;

    ①先求每个属性的平均值,即按列求平均值,并将结果赋予mean_vals;

    ②将每列数据减去该列平均数,得到新的data,并赋予mid;

    ③求mid的协方差矩阵,将结果赋予cov_mat;

    ④引入scipy的linalg包;

    ⑤通过linalg.eig求协方差矩阵cov_mat的特征值和特征向量,并将结果赋予eig_vals,eig_vects;

    ⑥求最大特征值。先将特征值通过np.argsort进行排序,然后取最大特征值,并将结果赋予eig_val_index;

    ⑦求最大特征值特征向量,将结果赋给eig_vects;

    ⑧用mid乘以特征向量eig_vects,得到转换后的矩阵low_dim_mat;

    ⑨返回降维后的矩阵和特征值。

    代码实现如下:

    返回结果为:

    (array([[-0.82797019],

           [ 1.77758033],

           [-0.99219749],

           [-0.27421042],

           [-1.67580142],

           [-0.9129491 ],

           [ 0.09910944],

           [ 1.14457216],

           [ 0.43804614],

           [ 1.22382056]]), array([0.0490834 +0.j, 1.28402771+0.j]))

    相关文章

      网友评论

          本文标题:PCA编程实现小结

          本文链接:https://www.haomeiwen.com/subject/lumnsctx.html