特征缩放对准确性的影响

时间:2014-10-31 05:52:58

标签: normalization mixture-model

我正在使用高斯混合模型进行图像分类。我有大约34,000个特征,属于三个类,都位于23维空间中。我使用不同的方法对训练和测试数据进行了特征缩放,我观察到在执行缩放后实际上的精度降低。我执行了特征缩放,因为许多特征之间存在许多顺序的差异。我很想知道为什么会这样,我认为特征缩放会提高准确性,特别是考虑到特征的巨大差异。

1 个答案:

答案 0 :(得分:21)

  

我认为特征缩放会提高准确性,特别是考虑到特征的巨大差异。

欢迎来到现实世界的好友。

一般来说,您希望功能在同一" scale"这样你就不会有某些功能而且会占据主导地位。其他特性。如果您的机器学习算法本质上是几何的,那么尤其如此。在自然界。通过"几何",我的意思是它将样本视为空间中的 points ,并且依赖于进行预测的点之间的距离(通常是Euclidean / L2,就像你的情况一样),即,点的空间关系很重要。 GMM和SVM就是这种算法。

然而,特征缩放可能会使事情变得困难,特别是如果某些特征本质上是分类/序数的,并且当您将它们附加到其余特征时,您没有对它们进行适当的预处理。此外,根据您的特征缩放方法,特定特征的异常值的存在也可能会破坏该特征的特征缩放。例如,a" min / max"或"单位差异"缩放将对异常值敏感(例如,如果您的某个功能编码年度收入或现金余额,并且数据集中有一些mi /亿万富翁)。

此外,当您遇到此类问题时,原因可能并不明显。这并不意味着您执行功能缩放,结果变坏,然后功能缩放就是错误。可能是你的方法被搞砸了,而且特征缩放后的结果恰好被搞砸了。

那么问题的其他原因是什么?

  1. 我猜测最可能的原因是你有高维数据而不是 足够的训练样本。这是因为您的GMM将用于估计协方差 使用维度为34000的数据的矩阵。除非你有 很多数据,很可能是你的一个或多个协方差矩阵 (每个高斯一个)将接近单数或单数。 这意味着你的GMM的预测开始时是无稽之谈,因为你的高斯"吹嘘" up,和/或EM算法在预定义的迭代次数后放弃了。
  2. 测试方法不佳。您没有将数据分成正确的数据 培训/验证/测试集,您没有正确执行测试。什么"好"你有的表现 一开始并不可信。这实际上是非常常见的,因为自然趋势是使用模型拟合的训练数据进行测试,而不是在验证或测试集上进行测试。
  3. 那你能做什么?

    1. 不要使用GMM进行图像分类。使用正确的 监督学习算法,特别是如果您已知图像 类别作为标签。特别是,要避免功能缩放 总之,使用随机森林或其变体(例如,非常 随机树)。
    2. 获取更多培训数据。除非你正在分类"简单" (即, "玩具" /合成图像)或者您正在将它们分类为几张图像 类(例如,< = 5.请注意,这只是我从空中拉出的一个随机的小数字。),你真的要有大量的图像 类。一个好的起点是至少要几百个 每个类,或使用更复杂的算法来利用 数据中的结构可以获得更好的性能。
    3. 基本上,我的观点是,不要(只是)将机器学习领域/算法视为黑盒子和一堆你记忆并随意尝试的技巧。尝试理解引擎盖下的算法/数学。这样,您就能更好地诊断遇到的问题。


      编辑(响应@Zee要求澄清)

      对于论文而言,我唯一可以回想起的是LibSVM的作者A Practical Guide to Support Vector Classification。其中的示例显示了SVM在各种数据集上的特征缩放的重要性。例如,考虑RBF /高斯核。该内核使用平方L2范数。如果您的功能具有不同的比例,则会影响该值。

      此外,如何表示您的功能至关重要。例如,将表示高度的变量从米改变为厘米或英寸将影响诸如PCA之类的算法(因为该特征的方向的变化已经改变。)注意这与"典型的"不同。缩放(例如,最小/最大,Z分数等),因为这是表示的问题。无论单位,此人的身高仍然相同。而典型的特征缩放"转换"数据,改变了"身高"这个人当被问及为什么他没有在他的书中包含PCA时,Amazon page of his bookInformation Theory for Machine Learning上的David Mackay教授就此发表评论。

      对于序数和分类变量,Bayesian Reasoning for Machine LearningThe Elements of Statistical Learning中简要提及了它们。他们提到了将它们编码为特征的方法,例如,用3个二进制变量替换可以代表3个类别的变量,其中一个设置为" 1"表明样本具有该类别。这对于诸如线性回归(或线性分类器)之类的方法很重要。请注意,这是关于编码分类变量/功能,缩放本身,但它们是功能预处理设置的一部分,因此有用。更多信息可以在Hal Duame III的书中找到。

      Hal Duame III的书A Course in Machine Learning。搜索"缩放"。本书最早的例子之一是它如何影响KNN(它只使用L2距离,如果你使用RBF /高斯核,GMM,SVM等使用它)。更多细节在第4章"机器学习实践"中给出。不幸的是,PDF中没有显示图像/图表。本书有一个关于特征编码和缩放的最好的处理方法,特别是如果你从事自然语言处理(NLP)。例如,参见他对特征应用对数的解释(即对数变换)。这样,日志的总和就成为了特征产品的对数,以及"效果" /"贡献"这些特征的对数逐渐减小。

      请注意,所有上述教科书均可从上述链接免费下载。