我正在开发一个用于分类问题的神经网络模型。特征的数量大约为1500,并且所有这些特征具有非常不同的范围。我使用特征规范化训练模型并获得更好的结果。现在,当我要部署我的模型时,用户将仅使用一个测试示例来测试我的模型。我想知道我的房屋列车/测试中的网络是标准化的,但是用户测试是一个单独的测试示例,并且它不能被标准化,因为它不是一组示例而只是一个实例。我的模型将如何处理这种情况?
始终使用与训练数据标准化相同的值对测试样本进行标准化。
所以你不会有问题。
您不应单独规范化测试数据,因为模型的执行方式不同。
示例:计算训练集的平均值和标准差。您将使用这些值来规范化训练集。现在,您只需对测试样品使用相同的均值和标准偏差。
这应该可以解决问题。
我同意Janu。我想在你的模型上覆盖预测或写一个包装器也是值得的,所以你不必担心这个问题。我要做的是编写一个(接口)方法,用户测试人员可以调用该方法来使用训练模型进行预测。内部预测我会将数据转换为类似于训练数据,然后进行预测。在python中我们可以使用sklearn预处理模块中的StandardScaler。伪代码如下。
def predict(testinstance):
scaler = StandardScaler()
scaler.fit(traningData)
testingData= scaler.transform(testinstance)
return model.predict(testingData)
这样您就不必跟踪与统计相关的其他变量。