特征缩放/规范化中的最小值和最大值?

时间:2016-09-25 03:29:45

标签: csv machine-learning normalization feature-extraction

我是机器学习的新手,我正在使用线性特征缩放对我的训练数据进行预处理。

我的问题是,给定一个.csv文件,其中每列数据代表一个功能,我应该使用什么minX和maxX值来规范化我的数据?

更具体地说,我应该单独规范每个功能(使用每列中的minX / maxX值),一次归一化所有数据(从整个数据集中查找minX / maxX,优化所有功能),或者在逐个输入?

2 个答案:

答案 0 :(得分:1)

分别标准化每个功能。你想要的是在一个明确定义的区间内限制每个特征的范围(即[0,1])。 仅使用来自训练数据集的数据。

如果使用Min-Max缩放比例,您将获得较小的STD,这也不错。如果使用Min-Max或标准化(mu = 0,std = 1)取决于您需要执行的应用程序。

答案 1 :(得分:0)

您希望所有要素在线性分类器的相同范围内(不仅仅是它们!也适用于神经网络!)。在继续前进之前,您想要扩展的原因应该非常明确。请查看Andrew Ng's lecture关于此主题的内容,以便直观地了解正在发生的事情。

一旦清楚,您应该得到问题的答案:逐个标准化每个功能。例如,如果您有一个包含3行的表:

row | F1 | F2
1   | 1  | 1000
2   | 2  | 2000
3   | 3  | 3000

您希望通过获取其最大值(3)及其最小值(1)来缩放F1。对于分别具有3000和1000最大值和最小值的F2,您将采用相同的方法。

这称为MinMax缩放。您还可以根据均值和方差进行缩放,或者完全按照另一种方法,认为您通常在计算资源方面拥有“预算”,并且希望最大化它。在这种情况下,像Histogram Equalization这样的东西可能是个不错的选择。

最后一点:如果您使用的是决策树(作为独立的分类器,或者在决策林中或在增强的集合中),那么请不要进行规范化,它不会改变事物。