栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python实现pca主成分分析_pca sklearn python?

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python实现pca主成分分析_pca sklearn python?

文章目录

写在前面一、PCA主成分分析

1、主成分分析步骤2、主成分分析的主要作 二、Python使用PCA主成分分析

写在前面

作为大数据开发人员,我们经常会收到一些数据分析工程师给我们的指标,我们基于这些指标进行数据提取。其中数据分析工程师最主要的一个特征提取方式就是PCA主成分分析,下面我将介绍Python的sklearn库中是如何实现PCA算法及其使用。

一、PCA主成分分析

什么是PCA主成分分析。百度百科给出如下定义:

1、主成分分析步骤

对于一个PCA主成分分析,一般分为以下几个步骤:

    去除平均值计算协方差矩阵计算协方差矩阵的特征值和特征向量将特征值排序保留前N个最大的特征值对应的特征向量将原始特征转换到上面得到的N个特征向量构建的新空间中(最后两步,实现了特征压缩)
2、主成分分析的主要作

概括起来说,主成分分析主要有以下几个方面的作用。

    主成分分析能降低所研究的数据空间的维数。即用研究m维的Y空间代替p维的X空间(m 二、Python使用PCA主成分分析
    from sklearn.decomposition import PCA
    import matplotlib.pyplot as plt
    import numpy as np
    
    X = np.array([[12, 350, 1.825, 0.102, 315, 0, 2, 4], [25, 300, 5.57, 0.45, 220, 25, 3, 2.5],  [25, 300, 5.25, 1.1, 220, 20, 4, 3]])
    Y = np.array([22, 300, 4.25, 1.86, 210, 18, 3, 2])
    # n_components指定降维后的维数
    pca = PCA(n_components=2)
    print(pca)
    # 应用于训练集数据进行PCA降维
    pca.fit(X)
    # 用X来训练PCA模型,同时返回降维后的数据
    newX = pca.fit_transform(X)
    print(newX)
    # 将降维后的数据转换成原始数据,
    pca_new = pca.transform(X)
    print(pca_new.shape)
    # 输出具有最大方差的成分
    print(pca.components_)
    # 输出所保留的n个成分各自的方差百分比
    print(pca.explained_variance_ratio_)
    # 输出所保留的n个成分各自的方差
    print(pca.explained_variance_)
    # 输出未处理的特征维数
    print(pca.n_features_)
    # 输出训练集的样本数量
    print(pca.n_samples_)
    # 输出协方差矩阵
    print(pca.noise_variance_)
    # 每个特征的奇异值
    print(pca.ingular_values_)
    # 用生成模型计算数据精度矩阵
    print(pca.get_precision())
    
    # 计算生成特征系数矩阵
    covX = np.around(np.corrcoef(X.T), decimals=3)
    # 输出特征系数矩阵
    print(covX)
    # 求解协方差矩阵的特征值和特征向量
    featValue, featVec = np.linalg.eig(covX)
    # 将特征进行降序排序
    featValue = sorted(featValue)[::-1]
    
    # 图像绘制
    # 同样的数据绘制散点图和折线图
    plt.scatter(range(1,  X.shape[1] + 1),  featValue)
    plt.plot(range(1,  X.shape[1] + 1),  featValue)
    
    # 显示图的标题
    plt.title("Test Plot")
    # xy轴的名字
    plt.xlabel("Factors")
    plt.ylabel("Eigenvalue")
    # 显示网格
    plt.grid()
    # 显示图形
    plt.show()
    
    
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/782857.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号