【问题标题】:Interpretation of PCA explained variance ratioPCA解释方差比的解释
【发布时间】:2019-04-14 18:37:12
【问题描述】:

我使用以下代码:

# 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.x scikit-learn pca


    【解决方案1】:

    事实上,正如documentation 所述,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()
    

    【讨论】:

      【解决方案2】:

      它显示了所有三个组件。 pca.explained_variance_ratio_ 的值绘制在图表中 x 轴上的 0、1 和 2 处。 第一个值位于 (0, 0.92540219),第二个位于 (1, 0.06055593),最后一个位于 (2, 0.01404188)。

      【讨论】:

        猜你喜欢
        • 2019-12-09
        • 2017-09-30
        • 2015-06-19
        • 2017-09-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-02
        • 2014-01-01
        相关资源
        最近更新 更多