当你只有一个测试实例时,如何处理机器学习模型部署中特征缩放的情况?

How to handle a situation of feature scaling in machine learning model deployment when you have only one testing instance?

我正在为分类问题开发一个神经网络模型。特征的数量大约为 1500,所有这些特征都有非常不同的范围。我使用特征归一化训练模型并获得了更好的结果。现在,当我要部署我的模型时,用户将仅使用一个测试示例来测试我的模型。我想知道我的内部网络 train/test 是否已规范化,但用户测试是单个测试示例,无法规范化,因为它不是一组示例,而只是单个实例。我的模型将如何处理这种情况?

始终使用与训练数据归一化时相同的值对测试样本进行归一化。

所以你不会有问题。

您不应单独规范化测试数据,因为模型的表现会有所不同。

示例:计算训练集的均值和标准差。您将使用这些值来规范化训练集。现在只需对您的测试样本使用相同的均值和标准差即可。

这应该可以解决问题。

我同意 Janu 的观点。我想在模型之上覆盖预测或编写包装器也值得付出努力,这样您就不必担心这个问题。我要做的是编写一个(接口)方法,用户测试人员可以调用该方法来使用经过训练的模型进行预测。在内部预测中,我会将数据转换为与训练数据类似的数据,然后进行预测。在 python 中,我们可以使用 sklearn 预处理模块中的 StandardScaler。伪代码如下。

def predict(testinstance):
    scaler = StandardScaler()
    scaler.fit(traningData)
    testingData= scaler.transform(testinstance)
    return model.predict(testingData)

这样您就不必跟踪与统计相关的其他变量。