我正在使用以下方法规范化和调整我的训练集:

# zero mean
feat = (feat - feat.mean()) / feat.std()

# scale between -1, 1
feat = ((feat - feat.min()) / (feat.max() - feat.min())) * 2 - 1


这很好。我使用训练集中的均值,STD,最小,最大以完全相同的方式转换测试集。如果测试集中的均值和最大值与训练集相同,则此方法很好。但是,如果测试集中未转换特征的范围不同,那么重新缩放后我的值将超过-1、1。如何解决?

最佳答案

如果您输入的测试输入中有很大一部分的值高于或低于训练模型所使用的极限,则理想情况下应该重新训练模型,因为训练和测试分布是不同的。

对于异常(异常)之类的测试实例,您可以将值裁剪为最大/最小之间,以进行最小最大缩放。

如果进行归一化,则您的测试可以是任何值,极端情况下您只会获得较大的z得分。

关于machine-learning - 标准化测试集,但范围更大,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57839639/

10-12 17:48