首页 > 解决方案 > PCA解释方差比的解释

问题描述

我使用以下代码:

# Fit PCA

pca = PCA(n_components=3)
pca.fit(data)

# Plot
plt.plot(range(0,3), pca.explained_variance_ratio_)
plt.ylabel('Explained Variance')
plt.xlabel('Principal Components')
plt.title('Explained Variance Ratio')
plt.show()
pca.explained_variance_ratio_

由此我得到下图:

在此处输入图像描述

array([0.92540219, 0.06055593, 0.01404188])

我不明白为什么它只显示两个主要组件?它应该是 92.54%(由第一个组件解释的信息),而在图表中它小于 20%?请帮我解决这个误解。

标签: python-3.xscikit-learnpca

解决方案


事实上,正如文档所述,explained_variance_ratio_返回由每个选定组件解释的方差百分比。因此,它完全符合您的预期,您的图表显示了这一点。

这种方式应该更清楚一点:

import matplotlib.pyplot as plt
%matplotlib inline

plt.plot(range(0,3), [0.92540219, 0.06055593, 0.01404188])
plt.ylabel('Explained Variance')
plt.xlabel('Principal Components')
plt.xticks(range(0,3),
           ["1st comp", "2nd comp", "3rd comp"], rotation=60)
plt.title('Explained Variance Ratio')
plt.show()

在此处输入图像描述


推荐阅读