通过PCA选择合适降维维度

PCA的作用有:降低特征值维度,提高了计算效率,但丢失了信息。信息在PCA中我们用方差来表示。

一、PCA参数、属性简介

1.介绍PCA方法中参数:

n_components:
  默认值为保留所有特征值维度,即不进行主成分降维
  取大于等于1的整数时,即指定我们希望降维后的维数;
  取0-1的浮点数时,即指定降维后的方差和占比,比例越大,保留的信息越多。系统会自行计算保留的维度个数
2.介绍PCA中的属性:

components_:降维后,保留的成分。每一行代表一个主成分,各成分按方差大小排序。
explained_variance_:降维后 ,各成分的方差
explained_variance_ratio_:降维后,各成分的方差占比
二、观察 在保留不同的维度个数时的方差和

横坐标:表示保留的维度个数

纵坐标:降维后的所有成分的方差和

通过下图,我们可以发现随着降维个数的增加,方差和占比是先快速增长,然后就平稳增长了。

当降维后的维度个数为20时,所有成分的方差和为90%,即约10%的信息被丢失了。

下面显示上图的绘制代码:

if __name__ == '__main__':
    #获得数据,X为特征值,y为标记值
    digits=datasets.load_digits()
    X=digits.data
    y=digits.target
    pca=PCA( )
    #pca=PCA(n_components=0.9)
    pca.fit(X,y)
    ratio=pca.explained_variance_ratio_
    print("pca.components_",pca.components_.shape)
    print("pca_var_ratio",pca.explained_variance_ratio_.shape)
    #绘制图形
    plt.plot([i for i in range(X.shape[1])],
             [np.sum(ratio[:i+1]) for i in range(X.shape[1])])
    plt.xticks(np.arange(X.shape[1],step=5))
    plt.yticks(np.arange(0,1.01,0.05))
    plt.grid()
    plt.show()
三、观察验证结果的正确性

将上文中的代码

pca=PCA( )替换为pca=PCA(n_components=0.9)
观察打印结果:由64维降维至21维

pca.components_ (21, 64)
pca_var_ratio (21,)
————————————————
版权声明:本文为CSDN博主「Genius9_9」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/genius9_9/article/details/81098840

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值