采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
在模型训练前做了归一化或者标准化处理。有了测试数据输入模型后怎样实现反归一化,有案例代码吗
以标准化处理为例:
把一个数字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),然后进行反向归一化。这个过程其实和机器学习的模型训练没关系:)
继续加油!:)
那请问这种对y进行归一化的操作是可以进行的吗? y归一化的操作,是不是因为在反归一化的过程会丢失精度,所以一般不这么做?
可以进行。就算不丢失精度,对于这个课程的算法来说,完全没有必要。因为没有任何目的性。
用归一化数据训练出来模型,模型上线后输入的数据也要做归一化处理吧?算法工程师提供的模型里边是否已经包含对输入数据的归一化处理?
登录后可查看更多问答,登录/注册
Python3+sklearn,兼顾原理、算法底层实现和框架使用。
2.4k 19
3.4k 17
2.9k 15
1.6k 15
1.4k 14