进行数据预处理时,建议进行缩放或标准化。手上有数据时很容易做到。您拥有所有数据,可以立即执行。但是在建立并运行模型之后,第一批数据是否需要缩放或标准化?如果需要,它只有一行如何缩放或标准化呢?我们如何知道每个特征的最小值/最大值/平均值/标准值是多少?输入数据如何是每个特征的最小/最大/平均值?
请告知
答案 0 :(得分:2)
是的,您需要对输入数据应用标准化,否则模型将预测无意义。
您还必须保存训练期间或训练数据中使用的归一化系数。然后,您必须将相同的系数应用于传入数据。
例如,如果您使用min-max规范化:
f_n =(f - min(f))/(max(f) - min_(f))
然后你需要保存min(f)和max(f)以便对新数据进行标准化。
答案 1 :(得分:2)
首先,您应该知道何时使用缩放和规范化。
缩放 - 扩展只不过是将您的功能转换为可比较的数量。请说如果您有像人的收入这样的功能,并且您注意到某些功能具有10阶的价值^ 3和一些有10 ^ 6.现在,如果您使用此功能对问题进行建模,那么像KNN,Ridge回归这样的算法将为这些属性的更高等级提供更高的权重。为了防止这种情况,您需要首先扩展您的功能.Min-Max scaler是最常用的缩放之一。
均值归一化 - 如果在检查了特征的分布并且你发现特征不是以零为中心那么对于像svm这样的算法,其中目标函数已经假定零均值和相同的方差,我们可能在建模中有问题。所以在这里你应该做均值归一化
标准化 - 对于像svm,神经网络,逻辑回归这样的算法,必须以相同的顺序对特征进行变化。所以我们为什么不做因此,在标准化中,我们将特征分布为零均值和单位方差。
现在让我们尝试在培训和测试集方面回答您的问题。 因此,我们假设您正在使用50k数据集训练模型并在10k数据集上进行测试。 对于上述三种转换,标准方法表示您应该将任何规范化器或缩放器仅适合训练数据集,并且仅对测试数据集使用转换。 在我们的例子中,如果我们想要使用标准化,那么我们将首先在50k训练数据集上拟合我们的标准化器,然后用它来转换50k训练数据集并测试数据集。
注意 - 我们不应该使用我们的标准化程序来测试数据集,而不是我们将使用已经安装的标准化程序来转换测试数据集。