当你只有一个测试实例时,如何处理机器学习模型部署中特征缩放的情况?
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)
这样您就不必跟踪与统计相关的其他变量。
我正在为分类问题开发一个神经网络模型。特征的数量大约为 1500,所有这些特征都有非常不同的范围。我使用特征归一化训练模型并获得了更好的结果。现在,当我要部署我的模型时,用户将仅使用一个测试示例来测试我的模型。我想知道我的内部网络 train/test 是否已规范化,但用户测试是单个测试示例,无法规范化,因为它不是一组示例,而只是单个实例。我的模型将如何处理这种情况?
始终使用与训练数据归一化时相同的值对测试样本进行归一化。
所以你不会有问题。
您不应单独规范化测试数据,因为模型的表现会有所不同。
示例:计算训练集的均值和标准差。您将使用这些值来规范化训练集。现在只需对您的测试样本使用相同的均值和标准差即可。
这应该可以解决问题。
我同意 Janu 的观点。我想在模型之上覆盖预测或编写包装器也值得付出努力,这样您就不必担心这个问题。我要做的是编写一个(接口)方法,用户测试人员可以调用该方法来使用经过训练的模型进行预测。在内部预测中,我会将数据转换为与训练数据类似的数据,然后进行预测。在 python 中,我们可以使用 sklearn 预处理模块中的 StandardScaler。伪代码如下。
def predict(testinstance):
scaler = StandardScaler()
scaler.fit(traningData)
testingData= scaler.transform(testinstance)
return model.predict(testingData)
这样您就不必跟踪与统计相关的其他变量。