【问题标题】:Mean centering before PCAPCA 之前的平均居中
【发布时间】:2023-01-31 01:10:51
【问题描述】:

我不确定这种问题(与 PCA 相关)在这里是否可以接受。

但是,建议在 PCA 之前执行 MEAN CENTER,如已知。事实上,我有 2 个不同的类(每个不同的班级都有不同的参与者。).我的目标是区分和分类这两个类别。不过,我不确定应该应用于整个数据集或每个类的 MEAN CENTER。

是不是分开做比较好? (如果是,预处理步骤也应该分开吗?)还是没有任何意义?

【问题讨论】:

    标签: python data-analysis pca centering


    【解决方案1】:

    根据定义,PCA 或多或少是一种以数据为中心的 SVD。

    根据实施情况(如果您使用库中的 PCA),会自动应用居中,例如sklearn - 因为如前所述,它必须按定义居中。
    所以对于 sklearn,你不需要这个预处理步骤,通常你将它应用于你的整个数据。

    PCA 是无监督的,可用于找到对您的类更有意义和更具代表性的表示然后.因此,您需要通过相同的 PCA 将所有样本放在相同的特征空间中。


    简而言之:您对整个(训练)数据进行一次 PCA,并且必须以整个(训练)数据为中心。像 sklarn 这样的库会自动进行居中。

    【讨论】:

    • 感谢您的宝贵意见。还有一件事;我听说每个班级都应该居中,因为每个班级都代表自己的人口。因此,还有另一个术语称为“类中心”,它取每个类的平均值并从每个观察值中减去平均值。但是,我不确定。
    • 更具体地说,举个例子,我有两个不同的班级;健康和癌症。每个班级都有自己的人口/观察。
    • 我想到了两件事。 a) 如果你想对一个未知样本进行分类/投影,并且你有两种不同的方法,你会应用哪一种? a.2) 至少对于 PCA,你只能全局应用一个,就像你说的可以减去两者,然后从非全局中心数据中进行 SVD。我不能说结果如何。 b) PCA 有一个“问题”,即某些特征是线性的,例如健康数据中的可能是非线性相关的,PCA 无法检测到。 -> 有两个 PCA 并应用每个 PCA 并检查未知样本更适合的位置可能是有意义的。必须进行测试。
    【解决方案2】:

    PCA 只是一种旋转,可以选择伴随到低维空间的投影。它找到最大方差轴(恰好是点云的惯性主轴),然后旋转数据集以将这些轴与坐标系对齐。您可以决定要保留多少个这样的轴,这意味着旋转之后会投影到方差最大的第一个k轴上,k是您选择的表示空间的维数.

    考虑到这一点,再次像计算惯性轴一样,您可以决定通过云的质心(平均值)或任意选择的原点来寻找此类轴。在前一种情况下,您的意思是将数据居中,而在后一种情况下,您可以将数据转换到任意点,结果是降低了固有云形状本身的重要性,并增加了数据之间距离的重要性。质心和任意点。因此,在实践中,您几乎总是将数据居中.

    您可能还想标准化您的数据(居中并除以标准差,以使每个坐标上的方差为 1),甚至 whiten 您的数据。

    任何状况之下,您将希望对整个数据集应用相同的转换,而不是逐个类.如果您按类应用转换,则每个类的重心之间存在的任何距离都将减小为 0,并且您可能会观察到两个类重叠的折叠表示。如果您想观察每个类别的内在形状,这可能会很有趣,但您也需要为每个类别分别应用 PCA。

    请注意,PCA可能让你更容易可视化这两个类(没有保证,如果数据是真正的 n 维,没有太多低维嵌入)。但在任何情况下都不会更容易辨析两者之间.如果有的话,PCA 会降低您的类的可辨别性,并且通常情况下投影会混合类(增加歧义),这些类在其他方面非常不同,例如可以用一个简单的超曲面分离。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-04
      • 2017-01-21
      • 1970-01-01
      • 2020-10-03
      • 1970-01-01
      • 2017-07-17
      • 2015-01-07
      相关资源
      最近更新 更多