【问题标题】:Contributions of features in PCA based on group/class基于组/类的 PCA 中特征的贡献
【发布时间】:2016-11-01 12:17:06
【问题描述】:

我想获取/绘制每种葡萄酒类别(barolo、grignolino、barbera)的特征的贡献。使用fviz_contrib,我得到了所有类的贡献,如下面的 MWE 所示。 但是我想知道是否以及如何计算/绘制按类/组单独过滤的它们。

library(ggbiplot)
library(factoextra)

data(wine)

wine.pca <- prcomp(wine, scale. = TRUE)

# plot the PCA 
print(ggbiplot(wine.pca, obs.scale = 1, var.scale = 1, groups = wine.class, ellipse = TRUE, circle = TRUE))

# plot the contributions of the features for all wine classes
g.contr <- fviz_contrib(wine.pca, choice = "var", axes = 1:2, fill = "lightblue", color = "darkblue", top = 45)
print(g.contr)

【问题讨论】:

    标签: r classification pca factoextra


    【解决方案1】:

    如果你分别计算每个类的 pca:

    barolo.pca <- prcomp(wine[wine.class=="barolo", ], scale. = TRUE)
    grignolino.pca <- prcomp(wine[wine.class=="grignolino", ], scale. = TRUE)
    barbera.pca <- prcomp(wine[wine.class=="barbera", ], scale. = TRUE)
    # plot the contributions of the features for each wine classes
    
    g.contr <- fviz_contrib(barolo.pca, choice = "var", axes = 1:2, fill = "lightblue", color = "darkblue", top = 45)
    print(g.contr)
    
    g.contr <- fviz_contrib(grignolino.pca, choice = "var", axes = 1:2, fill = "lightblue", color = "darkblue", top = 45)
    print(g.contr)
    
    g.contr <- fviz_contrib(barbera.pca, choice = "var", axes = 1:2, fill = "lightblue", color = "darkblue", top = 45)
    print(g.contr)
    

    【讨论】:

    • 感谢您的快速回复@timat。你的指示重新组合了我的第一个直觉。然而,这种方法导致每个方法都有自己的 PCA 空间。因此,它们没有反映基于所有 3 个组的“原始”PCA 空间的值,这在我的特定情况下很重要。
    • @sesselastronaut 我不明白你在寻找什么信息,以及如何解释它。据我所知,贡献的概念直接链接到整个“PCA 空间”,我不明白认为数学上不可能过滤此分布。对我来说没有意义
    • 确实你是对的。昨天有人向我解释。
    • @sesselastronaut 将其标记为已解决或然后删除问题
    猜你喜欢
    • 2021-05-13
    • 1970-01-01
    • 2011-08-15
    • 2013-12-14
    • 1970-01-01
    • 2017-05-26
    • 2017-04-09
    • 2020-05-19
    • 2016-05-16
    相关资源
    最近更新 更多