前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PCA的实现代码过程

PCA的实现代码过程

作者头像
用户3577892
发布2020-06-12 09:11:47
5760
发布2020-06-12 09:11:47
举报
文章被收录于专栏:数据科学CLUB数据科学CLUB

数据导入

代码语言:javascript
复制
from sklearn import datasetsimport matplotlib.pyplot as pltimport numpy as npimport pandas as pd
代码语言:javascript
复制
iris = datasets.load_iris()iris_x = iris.datairis_y = iris.target
代码语言:javascript
复制
print(iris_y.shape)print('*'*50)print(iris_x.shape)
代码语言:javascript
复制
(150,)**************************************************(150, 4)

PCA代码部分

代码语言:javascript
复制
from sklearn import decomposition
pca = decomposition.PCA()pca
代码语言:javascript
复制
PCA(copy=True, iterated_power='auto', n_components=None, random_state=None,  svd_solver='auto', tol=0.0, whiten=False)
代码语言:javascript
复制
# 使用pca()参数默认设置iris_pca = pca.fit_transform(iris_x)iris_pca.shape
代码语言:javascript
复制
(150, 4)
代码语言:javascript
复制
# 保留的n(4)个成分各自的方差百分比pca.explained_variance_ratio_
代码语言:javascript
复制
array([0.92461621, 0.05301557, 0.01718514, 0.00518309])
代码语言:javascript
复制
pca.explained_variance_ratio_.sum()
代码语言:javascript
复制
1.0
代码语言:javascript
复制
# 将主成分个数设置为2pca = decomposition.PCA(n_components=2)iris_x_2 = pca.fit_transform(iris_x)iris_x_2.shape
代码语言:javascript
复制
(150, 2)
代码语言:javascript
复制
pca.explained_variance_ratio_
代码语言:javascript
复制
array([0.92461621, 0.05301557])
代码语言:javascript
复制
pca.explained_variance_ratio_.sum()
代码语言:javascript
复制
0.9776317750248034
  • TIPS:可以给n_components传入转换后变量至少解释数据的百分比
代码语言:javascript
复制
pca = decomposition.PCA(n_components=0.99)iris_x_3 = pca.fit(iris_x).transform(iris_x)pca.explained_variance_ratio_
代码语言:javascript
复制
array([0.92461621, 0.05301557, 0.01718514])
代码语言:javascript
复制
pca.explained_variance_ratio_.sum()
代码语言:javascript
复制
0.9948169145498101

可视化部分

代码语言:javascript
复制
%matplotlib inlinefig = plt.figure(figsize=(20,7)) ax = fig.add_subplot(121) ax.scatter(iris_x[:,0],iris_x[:,1],c=iris_y,s=40) ax.set_title('Before PCA')ax2 = fig.add_subplot(122) ax2.scatter(iris_x_3[:,0],iris_x_3[:,1],c=iris_y,s=40) ax2.set_title('After PCA')
代码语言:javascript
复制
<matplotlib.text.Text at 0x188d58e4ac8>
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据科学CLUB 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据导入
  • PCA代码部分
  • 可视化部分
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档