• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    (手写)PCA原理及其Python实现图文详解

    1、背景

    为什么需要降维呢?

    因为数据个数 N 和每个数据的维度 p 不满足 N >> p,造成了模型结果的“过拟合”。有两种方法解决上述问题:

    增加N;减小p。

    这里我们讲解的 PCA 属于方法2。

    2、样本均值和样本方差矩阵


    3、PCA


    3.1 最大投影方差

    3.2 最小重构距离

    4、Python实现

    """
        -*- coding: utf-8 -*-
        @ Time     : 2021/8/15  22:19
        @ Author   : Raymond
        @ Email    : wanght2316@163.com
        @ Editor   : Pycharm
    """
    from sklearn.datasets import load_digits
    from sklearn.decomposition import PCA
    import pandas as pd
    import matplotlib.pyplot as plt
    
    digits = load_digits()
    print(digits.keys())
    print("数据的形状为: {}".format(digits['data'].shape))
    # 构建模型 - 降到10 d
    pca = PCA(n_components=10)
    pca.fit(digits.data)
    projected=pca.fit_transform(digits.data)
    print('降维后主成分的方差值为:',pca.explained_variance_)
    print('降维后主成分的方差值占总方差的比例为:',pca.explained_variance_ratio_)
    print('降维后最大方差的成分为:',pca.components_)
    print('降维后主成分的个数为:',pca.n_components_)
    print('original shape:',digits.data.shape)
    print('transformed shape:',projected.shape)
    s = pca.explained_variance_
    c_s = pd.DataFrame({'b': s,'b_sum': s.cumsum() / s.sum()})
    c_s['b_sum'].plot(style= '--ko',figsize= (10, 4))
    plt.rcParams['font.sans-serif'] = ['SimHei']  # 指定默认字体
    plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题
    plt.axhline(0.85,  color= 'r',linestyle= '--')
    plt.text(6, c_s['b_sum'].iloc[6]-0.08, '第7个成分累计贡献率超过85%', color='b')
    plt.title('PCA 各成分累计占比')
    plt.grid()
    plt.savefig('./PCA.jpg')
    plt.show()
    

    结果展示:

    总结

    本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

    您可能感兴趣的文章:
    • Python机器学习之PCA降维算法详解
    • 在Python中使用K-Means聚类和PCA主成分分析进行图像压缩
    • python实现PCA降维的示例详解
    • Python sklearn库实现PCA教程(以鸢尾花分类为例)
    • 利用python-pypcap抓取带VLAN标签的数据包方法
    上一篇:一篇文章告诉你如何用python进行自动化测试,调用c程序
    下一篇:利用Python如何实现K-means聚类算法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    (手写)PCA原理及其Python实现图文详解 手写,PCA,原理,及其,Python,