我是否需要在列车数据中缩放测试数据和Dependent变量?

时间:2017-09-16 19:32:45

标签: python machine-learning scikit-learn

我不熟悉在机器学习中扩展特征的概念,我read当一个特征范围与其他特征相比非常高时,缩放将非常有用。但如果我选择缩放训练数据,那么:

  1. 我可以扩展一个具有高范围的功能吗?
  2. 如果我缩放整个X列车数据,那么我是否还需要缩放列车数据y和整个测试数据?

2 个答案:

答案 0 :(得分:3)

  1. 是的,您可以缩放具有高范围的一个特征,但确保没有其他具有高范围的特征,因为如果它存在且尚未缩放,那么该特征将使算法忽略贡献缩放功能和影响结果(输出值),甚至略有变化。建议(但不是强制性的)扩展训练集中的所有功能。
  2. 您不需要缩放列车数据的Y,因为算法或模型会将参数值设置为最小成本(错误),即k {Y(输出)-Y(原始)}无论如何。但是如果Xtrain被缩放,那么测试集(特征值,Xtest)(仅在Ytrain被缩放时缩放Ytest)需要缩放(使用训练均值和方差),然后将其提供给模型,因为模型还没有看到这个数据之前和之前已经对具有缩放范围的数据进行了训练,因此如果测试数据的特征值偏离列车数据中相应的特征范围一个相当高的值,那么模型将输出对应测试数据的错误预测。

答案 1 :(得分:0)

是的,您可以缩放单个功能。您可以将缩放解释为对每个要素赋予相同重要性的方法。例如,假设您有关于人的数据,并且您通过两个功能描述您的示例:身高和体重。如果您以千米为单位测量身高,以千克为单位测量体重,则在计算两个示例之间的距离时,k-Nearest Neighbors分类器可能仅根据权重做出决策。在这种情况下,您可以将其中一个功能扩展到另一个功能的相同范围。通常,我们将所有要素缩放到相同范围(例如0 - 1)。此外,请记住,必须使用用于扩展训练数据的所有值来缩放测试数据。

至于因变量y,您无需缩放它。