数据科学Scaling/Normalization 真实案例

Data Science Scaling/Normalization real case

在做数据预处理时,建议做缩放或者归一化。当您手头有数据时,这很容易做到。您拥有所有数据并且可以立即执行。但是在模型建立和 运行 之后,第一个进来的数据是否需要缩放或归一化?如果需要,它只有一行如何缩放或标准化?我们如何知道每个特征的 min/max/mean/stdev 是什么? min/max/mean 每个特征的传入数据如何?

请指教

是的,您需要对输入数据应用归一化,否则模型会预测出错误。

您还必须保存在训练期间或从训练数据中使用的归一化系数。然后,您必须对传入数据应用相同的系数。

例如,如果您使用最小-最大归一化:

f_n = (f - min(f)) / (max(f) - min_(f))

然后您需要保存 min(f) 和 max(f) 以便对新数据执行归一化。

首先你应该知道什么时候使用缩放和归一化。

  1. 缩放 - 缩放只不过是将你的特征转换为可比较的 magnitudes.Let 比如你有像人的收入这样的特征并且你注意到一些具有 10^3 阶的值,有些具有 10^6.Now 如果您使用此功能对您的问题进行建模,那么像 KNN、Ridge 回归这样的算法将为更高的 attributes.To 等量级赋予更高的权重,以防止您需要首先缩放您的 features.Min-Max 缩放器是最常用的缩放器之一。

  2. 均值归一化 - 如果在检查特征的分布后发现特征不以零为中心,那么对于像 svm 这样的算法,其中 objective 函数已经假设零均值和同阶方差,我们可能会在 modeling.So 中遇到问题在这里你应该做均值归一化。

  3. 标准化 - 对于svm、神经网络、逻辑回归等算法,需要在相同的order.So 我们为什么不在标准化中做到 one.So,我们将特征分布设为零均值和单位方差。

现在让我们试着从训练和测试集的角度来回答你的问题。 因此,假设您正在 50k 数据集上训练模型并在 10k 数据集上进行测试。 对于上述三种转换,标准方法表示您应该将任何规范化器或缩放器仅适用于训练数据集,并且仅对测试数据集使用转换。 在我们的例子中,如果我们想使用标准化,那么我们首先将我们的标准化器安装在 50k 训练数据集上,然后用于将其转换为 50k 训练数据集和测试数据集。

注意 - 我们不应该让我们的标准器适合测试数据集,我们将使用已经适合的标准器来转换测试数据集。