我是机器学习的新手,我正在使用线性特征缩放对我的训练数据进行预处理。
我的问题是,给定一个.csv文件,其中每列数据代表一个功能,我应该使用什么minX和maxX值来规范化我的数据?
更具体地说,我应该单独规范每个功能(使用每列中的minX / maxX值),一次归一化所有数据(从整个数据集中查找minX / maxX,优化所有功能),或者在逐个输入?
答案 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这样的东西可能是个不错的选择。
最后一点:如果您使用的是决策树(作为独立的分类器,或者在决策林中或在增强的集合中),那么请不要进行规范化,它不会改变事物。