文章目录
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
- 主成分分析特点
-
降维:将高维降为低维
-
降维导致信息量损失
-
降维损失达到70%以内就能达到要求
-
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#解释比例