python统计分析---6.主成分分析

文章目录

1. 主成分分析

#导入包
import numpy as np
import pandas as pd
import statsmodels.formula.api as smf
from sklearn import linear_model
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline

#使用pandas读取数据支持xls和xlsx
data=pd.read_excel("bankloan_binning.xlsx")
data.head(6)#显示数据开头6行

主成分分析自带的案例

import mglearn
mglearn.plots.plot_pca_illustration()

可能需要先导入mglearn包

pip install mglearn

在这里插入图片描述

  • 主成分分析特点
  1. 降维:将高维降为低维

  2. 降维导致信息量损失

  3. 降维损失达到70%以内就能达到要求

  4. PCA相当于一种特殊的回归

在这里插入图片描述

在这里插入图片描述
主成分几个标准
1. Z1>50%;
2. Z1+Z2>70%;
3. Z1/Z2>3;
4. 尽量压缩到前两个主成分Z1和Z2(理想的情况下),因为在做数据展示的时候二维空间更好的表达图形
5. 不管有多少维度尽量用两个维度来表达

在这里插入图片描述
降维到2到3个为最佳
在这里插入图片描述

from sklearn.decomposition import PCA
#PCA主成分分析,n_components保留几个主成分,可以保留个数或者百分比n_components=6(个数也可以)
pca=PCA(n_components=0.8).fit(zraw1)
pca.explained_variance_ #主成分特征值
pca.explained_variance_ratio_#主成分的解释方差百分比
# pca.components_#特征向量

#保存主成分
#累计贡献率,保存几个主成分,可以保存主成分的贡献率达到多少保留,也可以保留主成分的个数
pca = PCA(n_components=2).fit_transform(zraw1)#保存两个主成分
raw[["z1","z2"]]=pd.DataFrame(pca)
raw.head(2)

Z1和Z2不是特征变量的任何一个,而是这些变量整合而来的共同成分,整合到一起的两个主要特征。
在这里插入图片描述
大数据的包实现主成分分析

from sklearn.decomposition import PCA

小数据的包实现主成分分析

from statsmodels.multivariate.pca import PCA # 小数据的包实现主成分分析

两个包都能实现主成分分析,但是适用场景会不一样。

  • 大数据分析
from sklearn.decomposition import PCA #大数据的包实现主成分分析
#PCA主成分分析,n_components保留几个主成分,可以保留个数或者百分比n_components=6(个数也可以)
pca=PCA(n_components=0.8).fit(zraw1)
pca.explained_variance_ #主成分特征值
pca.explained_variance_ratio_#主成分的解释方差百分比
# pca.components_#特征向量
  • 小数据分析
#---------对比多变量主成分--------
from statsmodels.multivariate.pca import PCA # 小数据的包实现主成分分析
stat_pca=PCA(zraw1,ncomp=3,standardize=True,method='eig')
stat_pca.factors#主成分得分
stat_pca.loadings#载荷
stat_pca.coeff#系数
stat_pca.rsquare#解释比例
  • 4
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值