是否需要功能缩放

时间:2015-04-24 08:41:51

标签: algorithm machine-learning

我正在与sample data set一起学习群集。此数据集包含关键字的出现次数。

由于所有都是不同关键字的出现次数,是否可以不缩放值并按原样使用它们?

我在互联网上阅读了几篇文章,强调缩放很重要,因为它会调整频率的相对性。由于大多数频率为0(95%+),z得分缩放将改变分布的形状,我感觉可能是问题,因为我正在改变数据的性质。

我在考虑不改变价值观来避免这种情况。这会影响我从群集中获得的结果的质量吗?

2 个答案:

答案 0 :(得分:4)

正如已经指出的那样,答案在很大程度上取决于所使用的算法。

如果您使用基于距离的算法(通常是默认的)欧几里德距离(例如,k-Means或k-NN),那么它将更多地依赖于具有更大范围的特征,因为&& #34;典型差异"该特征的值更大。

非基于距离的模型也会受到影响。虽然人们可能认为线性模型没有进入这一类,因为缩放(和翻译,如果需要)是线性变换,所以如果它使结果更好,那么模型应该学习它,对吧?事实证明,答案是否定的。原因是没有人使用香草线性模型,他们总是使用某种正规化来惩罚太大的权重。这可以防止线性模型从数据中学习缩放。

有些模型独立于特征尺度。例如,基于树的算法(决策树和随机森林)不受影响。树的节点通过比较特征(将数据集最佳分割)与阈值进行比较,将数据划分为2组。阈值没有正则化(因为应该保持树的高度很小),所以它不受不同尺度的影响。

话虽如此,通常建议您对数据进行标准化(减去均值并除以标准偏差)。

答案 1 :(得分:0)

可能它取决于分类算法。我只熟悉SVM。请参阅Ch. 2.2 for the explanation of scaling

功能类型(单词数量)并不重要。功能范围应该或多或少相似。如果是例如"尊严"是10,"的数量是"在你的文本中是100000000,那么(至少在SVM上)这些特征的结果将不那么准确,就像你将两个计数缩放到相似的范围一样。

不需要缩放的情况是那些隐含地缩放数据的情况,例如:要素是图像中的像素值。数据已经缩放到0-255范围。