【问题标题】:Right order of doing feature selection, PCA and normalization?进行特征选择、PCA 和归一化的正确顺序?
【发布时间】:2018-02-14 04:54:31
【问题描述】:

我知道特征选择可以帮助我删除可能贡献较低的特征。我知道 PCA 有助于将可能相关的特征减少为一个,从而减少维度。我知道归一化会将特征转换为相同的比例。

但是有推荐的顺序来执行这三个步骤吗?从逻辑上讲,我认为我应该先通过特征选择来剔除不好的特征,然后对它们进行归一化,最后使用 PCA 降维并使特征尽可能相互独立。

这个逻辑正确吗?

额外问题 - 还有其他事情要做吗(预处理或转换) 在将特征输入估计器之前对其进行处理?

【问题讨论】:

  • 这个问题与scikit-learn没有直接关系,而是与机器学习理论有关,因此属于Cross Validated。无论如何,正确的答案应该是:视情况而定。通常,特征选择步骤出现在 PCA 之后(带有描述特征数量的优化参数,而 Scaling 出现在 PCA 之前。但是,根据我改变的问题。您可能只想将 PCA 应用于特征的子集。一些算法不需要对数据进行规范化等。

标签: machine-learning scikit-learn


【解决方案1】:

这里有很好的答案。有一点需要强调。 PCA 是一种降维形式。它将找到一个能够很好地逼近数据的低维线性子空间。当这个子空间的轴与一开始的特征对齐时,它也会导致可解释的特征选择。否则,PCA 之后的特征选择,将导致特征是原始特征集的线性组合,很难基于原始特征集进行解释。

【讨论】:

    【解决方案2】:

    一般来说,规范化需要 PCA之前。 问题的关键在于特征选择的顺序,这取决于特征选择的方法。

    一个简单的特征选择就是看特征的方差或标准差是否小。如果这些值都比较小,这个特性可能对分类器没有帮助。但是如果在这之前做归一化,标准差和方差会变小(一般小于1),这会导致不同特征之间的std或var差异非常小。如果使用零均值归一化,则所有特征的平均值将等于 0,std 等于 1。此时,在特征选择之前进行归一化可能不好

    特征选择是灵活的,选择特征的方法有很多种。特征选择的顺序要根据实际情况来选择

    【讨论】:

    • 好点。我将在规范化之前和之后尝试特征选择(在这两种情况下都进行 PCA 规范化之后),看看这对我拥有的数据有何影响。感谢您的洞察力!
    【解决方案3】:

    如果我在做某种分类,我会亲自使用这个顺序

    1. 标准化
    2. PCA
    3. 特征选择

    归一化:您将首先进行归一化以使数据进入合理的范围。如果您有数据 (x,y) 和 x is from -1000 to +1000y is from -1 to +1 的范围,您可以看到任何距离度量都会自动说 y 的变化不如 X 的变化重要。我们不知道那是案例呢。所以我们想要规范化我们的数据。

    PCA:使用数据的特征值分解来找到描述数据点方差的正交基组。如果您有 4 个特征,PCA 可以告诉您只有 2 个特征真正区分数据点,这将我们带到最后一步

    特征选择:一旦您有了一个可以更好地描述您的数据的坐标空间,您就可以选择哪些特征是显着的。通常,您会使用 PCA 中的最大特征值 (EV) 及其对应的特征向量来表示。由于更大的 EV 意味着在该数据方向上存在更多差异,因此您可以在隔离特征时获得更多粒度。这是减少问题维数的好方法。

    当然,这可能会因问题而异,但这只是一个通用指南。

    【讨论】:

    • 这是有道理的。我的逻辑完全不正常:D。谢谢!
    猜你喜欢
    • 2020-02-10
    • 1970-01-01
    • 2014-02-05
    • 1970-01-01
    • 2013-01-09
    • 2022-07-06
    • 2022-01-06
    • 2012-10-29
    • 2013-02-20
    相关资源
    最近更新 更多