使用MinMaxScaler将测试数据缩放为0和1

时间:2015-05-27 05:05:53

标签: python machine-learning scikit-learn svm

使用sklearn中的MinMaxScaler,我按如下方式缩放数据。

ProtocolSummary

但是,当打印X_test_scaled.min()时,我有一些负值(值不会介于0和1之间)。这是因为我的测试数据中的最低值低于列车数据,其中最小最大缩放器是合适的。

在SVM分类器上,0和1值之间没有完全标准化数据的影响有多大?此外,将列车和测试数据连接成单个矩阵,执行最小 - 最大缩放以确保值介于0和1之间,然后再将它们分开是不好的做法吗?

2 个答案:

答案 0 :(得分:0)

如果您可以一次性扩展所有数据,那么这将更好,因为所有数据都由Scaler以逻辑方式管理(全部在0和1之间)。但对于SVM算法,由于缩放器将扩展比例,因此必须没有区别。即使它是负面的,仍然存在相同的差异。

In the documentation我们可以看到有负值,所以我认为它对结果没有影响

答案 1 :(得分:0)

对于这种缩放,它在实践中可能并不重要,但一般而言,您不应使用测试数据来估计预处理的任何参数。这可能会严重偏向您的结果,以进行更复杂的预处理步骤。

你真的没有理由想在这里连接数据,SVM会处理它。 如果您要使用的模型需要正值且测试数据不是正数,那么您可能会考虑另一种策略而不是MinMaxScaler。