数据白化(特征缩放和均值归一化)在我们使用代表不同特征且数值范围差异很大的特征时非常有用(例如,房子的房间数量和房价)。
如果特征代表“相似变量”但数值范围差异很大,该怎么办?假设我们有一个矩阵,代表环境中不同时刻不同物种的数量,我们希望将这些物种重新分组(例如,证明蚊子和鸟类种群高度相关)。在这个例子中,蚊子的数量远大于鸟类(可能是十倍或百倍)。在这种情况下,是否应该对数据进行白化处理?
回答:
我认为当每个特征的数值范围不同时,应该应用数据缩放。你描述的数据也应该应用这种方法。
根据我在使用SVM(liblinear)的经验,通过数据缩放可以将训练模型的准确性提高10%。
通常我们会对SVM模型应用正则化,以确保权重不会变得过大。然而,如果数据未经缩放,特征1的数值是特征2的100倍,那么相对于特征1的权重应该比特征2小100倍,以平衡特征1和特征2的影响(这意味着w*x是平衡的)。在这种情况下,如果特征2有效,其权重会试图增大,但受到模型的限制,因此特征2无法发挥其效果。