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

shi*_*shu 8 machine-learning scikit-learn

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

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

这个逻辑是否正确?

奖金问题 - 在将特征提供给估算器之前,是否还有其他事情要做(预处理或转换)?

and*_*rew 10

如果我正在做某种分类器,我会亲自使用这个订单

  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意味着该数据方向存在更多差异,因此您可以在隔离功能时获得更多粒度.这是减少问题维度的好方法.

当然,这可能会从问题变为问题,但这只是一个通用指南.


小智 6

一般来说,PCA之前需要Normalization。问题的关键在于特征选择的顺序,这取决于特征选择的方法。 一个简单的特征选择就是看特征的方差或标准差是否小。如果这些值相对较小,则此功能可能对分类器没有帮助。但是如果在这之前先做归一化,标准差和方差会变小(一般小于1),这会导致不同特征之间的std或var差异非常小。 如果使用零均值归一化,则所有特征的均值将等于 0,std 等于 1。此时,在特征选择之前进行归一化可能不好



特征选择灵活,选择特征的方式有很多种。特征选择顺序应根据实际情况选择