做功能选择,PCA和规范化的正确顺序?

时间:2017-09-05 20:11:01

标签: machine-learning scikit-learn

我知道功能选择可以帮助我删除可能贡献率较低的功能。我知道PCA有助于将可能相关的特征减少为一个,从而减小尺寸。我知道规范化将特征转换为相同的规模。

但推荐的订单是否有这三个步骤?从逻辑上讲,我认为我应首先通过特征选择来消除不良特征,然后对它们进行标准化,最后使用PCA来减小尺寸并使特征尽可能彼此独立。

这个逻辑是否正确?

奖金问题 - 还有更多事情要做(预处理或转换)  在将它们送入估算器之前的特征?

3 个答案:

答案 0 :(得分:5)

如果我正在做某种分类器,我个人会使用这个命令

  1. 正常化
  2. PCA
  3. 特征选择
  4. 规范化:您首先要进行规范化以将数据转化为合理的边界。如果您有数据(x,y)以及x is from -1000 to +1000y is from -1 to +1的范围您可以看到任何距离指标会自动表示y的变化不如X的变化那么重要。我们不会#39 ; t知道情况还是如此。所以我们想要规范化我们的数据。

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

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

    当然这可以从问题变为问题,但这只是一个通用指南。

答案 1 :(得分:2)

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

一个简单的特征选择是查看特征的方差或标准偏差是否小。如果这些值相对较小,则此功能可能对分类器没有帮助。但是如果在执行此操作之前进行标准化,标准偏差和方差将变得更小(通常小于1),这将导致不同特征之间std或var的差异非常小。如果使用零均值归一化,所有特征的平均值将等于0且标准等于1.此时,在特征选择之前进行标准化可能是不好的 功能选择非常灵活,选择功能的方法有很多种。应根据实际情况选择特征选择的顺序

答案 2 :(得分:0)

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