在模型训练前做了归一化或者标准化处理。有了测试数据输入模型后怎样实现反归一化,有案例代码吗
来源:11-3 Soft Margin SVM

qq_慕姐45445
2019-03-05
在模型训练前做了归一化或者标准化处理。有了测试数据输入模型后怎样实现反归一化,有案例代码吗
1回答
-
liuyubobobo
2019-03-06
以标准化处理为例:
把一个数字x归一化成为x_normalized,如果使用x_normalized = (x - μ) / σ 的话,
那么如果已知一个x_normalized,反向求出x的方式就是 x= x_normalized * σ + μ
当然,你的归一化方式可能是其他方式,比如你可能使用最大最小归一化:
x_normalized = (x - xmin) / (xmax - xmin),
那么反向,已知x_normalized,求x的方式就是 x = x_normalized * (xmax - xmin) + xmin
总之,就是将归一化的式子颠倒过来:)(反函数)
但是,对于机器学习算法来说,我们的模型是做预测,预测结果是某一个类(分类问题),或者一个数值(回归问题),所以我们只是对数据进行过一化处理(X),对结果是不需要归一化处理的(y)!(也不牵扯反归一化)。可以再仔细理解一下这个课程的实例,无论是房价预测,鸢尾花分类,手写识别还是人脸识别,我们从来不会对y做归一化处理,也不会对预测结果y做反归一化处理。我们训练的模型,测试数据输入之后,就可以直接得到结果。
但如果你训练模型的时候,喂给模型的那个y做过归一化处理,这个步骤其实已经和机器学习无关了。 就好比本来你的数据时高考学生数据,每个学生对应一个高考分数(0-750之间),但你先对这个高考分数做了归一化处理,变成0-1之间,那么你的模型预测的结果一定是0-1之间的数,你需要直到原先对y做归一化相应的参数(均值,方差,ymin,ymax),然后进行反向归一化。这个过程其实和机器学习的模型训练没关系:)
继续加油!:)
042020-04-17
相似问题