【问题标题】:How to determine the importance of variables in PCA using Matlab?如何使用 Matlab 确定 PCA 中变量的重要性?
【发布时间】:2013-01-21 05:08:30
【问题描述】:

我在网上遇到了许多类似的问题,但找不到能解决我的问题的我能理解的问题。我会很感激这里的一些解释,以帮助我理解。提前致谢!

所以,

[COEFF,SCORE,latent,tsquare] = princomp(X)

据我所知,对于 coeff,各列按组件方差递减的顺序排列。但是我是否知道我的变量(原始数据集)的重要性,而不是主成分(PC)的重要性,就像coeff 的答案可能呈现的那样。有什么方法可以对我拥有的变量的重要性进行排名吗?

我看到许多统计软件都可以做到这一点,显示哪些原始变量对绘图的贡献最大,哪些可以删除以防止过度拟合问题。有没有办法用 MatLab 做到这一点?

我的目标是在 2D 图中绘制数据,这意味着我将使用 PC1 和 PC2,它们具有最显着的分量方差。再说一遍,我怎么知道哪些变量应该保留,哪些应该丢弃?

谁能给我解释一下?谢谢!

【问题讨论】:

    标签: matlab pca


    【解决方案1】:

    如果您只关心将数据投影到 2D 平面以进行可视化,那么请务必从 SCORE 获取每个点的前两个坐标 - 这些是您称为 PC1 和 @987654323 的坐标@在你的问题中。

    但是,如果您想知道 X 中对 PC1PC2 贡献最大的两个组件,则必须在前两列中找到条目COEFF 的绝对值最大。由于COEFF 的前两列表示X 中元素的线性组合,产生PC1PC2

    【讨论】:

    • 但至于您提到的第二部分,在 COEFF 的前两列中取最大绝对值。但是你怎么知道这些值来自哪些变​​量呢?它们的排名是否与我定义它们的顺序相同?因为我知道 COEFF 中的列是按照分量方差减小的顺序重新排列的,但我不确定行。你是说这些行没有重新排序,而是按照我输入的顺序保存的?
    • 是的,我对第二部分有疑问。抱歉,之前的帖子出现了一些问题......
    • @maureen 你熟悉使用矩阵的线性变换吗?
    • 我想有点...你建议我做什么?
    • 如果你注意,SCORE = COEFF * X 是数据X 的简单线性变换。这样您就可以确定数据如何影响转换后的SCORE
    猜你喜欢
    • 2018-11-20
    • 1970-01-01
    • 2021-07-15
    • 2013-02-03
    • 2021-12-31
    • 2021-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多