Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 主成分分析解释方差比的解释_Python 3.x_Scikit Learn_Pca - Fatal编程技术网

Python 3.x 主成分分析解释方差比的解释

Python 3.x 主成分分析解释方差比的解释,python-3.x,scikit-learn,pca,Python 3.x,Scikit Learn,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

我使用以下代码:

# 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_
由此,我得到以下图表:

和阵列[0.92540219,0.06055593,0.01404188]


我不明白的是为什么它只显示了两个主成分?它是否应该是第一分量解释的信息的92.54%,而在图表中它应该小于20%?请帮我解决这个误解。

它显示了所有三个组件。pca.explained_variance_ratio_uu的值在图形中的x轴0、1和2处绘制。 第一个值为0,0.92540219,第二个值为1,0.06055593,最后一个值为2,0.01404188。

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

这样应该更清楚一点:

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()