导航
  • 报考
  • 备考
  • 政策

报考

备考

复习资料

政策

行业动态

如何用Python sklearn库实现PCA?这些方法其实很关键

环球网校·2020-05-12 11:45:29浏览75 收藏22

请输入下面的图形验证码

提交验证

预约成功

我知道了
摘要 现在学习python的人都希望自己的python能学的越来越好,环球网校小编建议大家可以了解如何用Python sklearn库实现PCA?这些方法其实很关键,毕竟学习就是超越自己的过程,所以你一定要知道如何用Python sklearn库实现PCA?这些方法其实很关键。

PCA简介

主成分分析(Principal Component Analysis,PCA)是最常用的一种降维方法,通常用于高维数据集的探索与可视化,还可以用作数据压缩和预处理等。矩阵的主成分就是其协方差矩阵对应的特征向量,按照对应的特征值大小进行排序,最大的特征值就是第一主成分,其次是第二主成分,以此类推。

一、如何用Python sklearn库实现PCA——基本步骤:

具体实现

我们通过Python的sklearn库来实现鸢尾花数据进行降维,数据本身是4维的降维后变成2维,可以在平面中画出样本点的分布。样本数据结构如下图:

其中样本总数为150,鸢尾花的类别有三种,分别标记为0,1,2

二、如何用Python sklearn库实现PCA——代码

import matplotlib.pyplot as plt #加载matplotlib用于数据的可视化 from sklearn.decomposition import PCA #加载PCA算法包 from sklearn.datasets import load_iris data=load_iris() y=data.target x=data.data pca=PCA(n_components=2) #加载PCA算法,设置降维后主成分数目为2 reduced_x=pca.fit_transform(x)#对样本进行降维 red_x,red_y=[],[] blue_x,blue_y=[],[] green_x,green_y=[],[] for i in range(len(reduced_x)): if y[i] ==0: red_x.append(reduced_x[i][0]) red_y.append(reduced_x[i][1]) elif y[i]==1: blue_x.append(reduced_x[i][0]) blue_y.append(reduced_x[i][1]) else: green_x.append(reduced_x[i][0]) green_y.append(reduced_x[i][1]) #可视化 plt.scatter(red_x,red_y,c='r',marker='x') plt.scatter(blue_x,blue_y,c='b',marker='D') plt.scatter(green_x,green_y,c='g',marker='.') plt.show()

结果图

知识拓展:python sklearn PCA 实例代码-主成分分析

python sklearn decomposition PCA 主成分分析

三、如何用Python sklearn库实现PCA——主成分分析(PCA)

1、主成分分析(Principal Component Analysis,PCA)是最常用的一种降维方法,

通常用于高维数据集的探索与可视化,还可以用作数据压缩和预处理

2、PCA可以把具有相关性的高维变量合成为线性无关的低维变量,称为主成分。

主成分能够尽可能保留原始数据的信息

3、概念

方差:用来度量一组数据的分散程度

协方差:用来度量两个变量之间的线性相关性程度,若两个变量的协议差为0,二者线性无关

协方差矩阵:矩阵的特征向量是描述数据集结构的非零向量,?? =??

特征向量和特征值:? 特征向量,?是特征值

4、提取:

矩阵的主成分是其协方差矩阵对应的特征向量,按照对应的特征值大小进行排序,最大的特征值就是第一主成分,其次是第二主成分

5、原理:

1、对所有样本进行中心化:xi-(x1+x2…xm)/m

2、计算样本的协方差矩阵X(X.T)

3、对协方差矩阵X(X.T)做特征值分解

4、取最大的d个特征值所对应的特征向量w1,w2…wd

输出投影矩阵W=(w1,w2,…,wd)

6、参数说明

sklearn.decomposition.PCA(n_components=None,copy=True,whithen=False,svd_solver=‘auto',tol=0.0,

iterated_power=‘auto',random_state=None)

n_components:指定主成分的个数,即降维后数据的维度

svd_slover:设置特征值分解的方法:‘full',‘arpack',‘randomized'

PCA实现高维度数据可视化 实例

四、如何用Python sklearn库实现PCA——目标:

已知鸢尾花数据是4维的,共三类样本,使用PCA实现对鸢尾花数据进行降维,实现在二维平面上的可视化

实例程序编写

import matplotlib.pyplot as plt import sklearn.decomposition as dp from sklearn.datasets.base import load_iris x,y=load_iris(return_X_y=True) #加载数据,x表示数据集中的属性数据,y表示数据标签 pca=dp.PCA(n_components=2) #加载pca算法,设置降维后主成分数目为2 reduced_x=pca.fit_transform(x) #对原始数据进行降维,保存在reduced_x中 red_x,red_y=[],[] blue_x,blue_y=[],[] green_x,green_y=[],[] for i in range(len(reduced_x)): #按鸢尾花的类别将降维后的数据点保存在不同的表表中 if y[i]==0: red_x.append(reduced_x[i][0]) red_y.append(reduced_x[i][1]) elif y[i]==1: blue_x.append(reduced_x[i][0]) blue_y.append(reduced_x[i][1]) else: green_x.append(reduced_x[i][0]) green_y.append(reduced_x[i][1]) plt.scatter(red_x,red_y,c='r',marker='x') plt.scatter(blue_x,blue_y,c='b',marker='D') plt.scatter(green_x,green_y,c='g',marker='.') plt.show()

以上就是《如何用Python sklearn库实现PCA?这些方法其实很关键》的全部内容,只有掌握了这些内容,你就知道该如何实现PCA教程,当然,本期小编使用了鸢尾花数据为大家举例示范。如果你想知道更多的python编程知识,可以点击下方资料下载链接。

展开剩余
资料下载
历年真题
精选课程
老师直播

注册电脑版

版权所有©环球网校All Rights Reserved