马春杰杰博客
致力于深度学习经验分享!

[mcj]使用sklearn进行对数据标准化、归一化以及将数据还原

最新目录

我们知道很多网络在训练的时候都会进行归一化,但是如何将归一化后的内容再还原呢?

这里通过使用sklearn.preprocess模块进行处理。

一、标准化和归一化的区别

归一化其实就是标准化的一种方式,只不过归一化是将数据映射到了[0,1]这个区间中。
标准化则是将数据按照比例缩放,使之放到一个特定区间中。标准化后的数据的均值=0,标准差=1,因而标准化的数据可正可负。

二、使用sklearn进行标准化和标准化还原

原理:
即先求出全部数据的均值和方差,再进行计算。
最后的结果均值为0,方差是1,从公式就可以看出。
但是当原始数据并不符合高斯分布的话,标准化后的数据效果并不好。
导入模块

通过生成随机点可以对比出标准化前后的数据分布形状并没有发生变化,只是尺度上缩小了。
sklearn.preprocess.StandardScaler的使用:
先是创建对象,然后调用fit_transform()方法,需要传入一个如下格式的参数作为训练集。
X : numpy array of shape [n_samples,n_features]Training set.

通过invers_tainsform()方法就可以得到原来的数据。

可以看到生成的数据的标准差是1,均值接近0。

打印结果如下:


三、使用sklearn进行数据的归一化归一化还原
原理:
从上式可以看出归一化的结果跟数据的最大值最小值有关
使用时类似上面的标准化

结果:

 
赞(389) 打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《[mcj]使用sklearn进行对数据标准化、归一化以及将数据还原》
文章链接:https://www.machunjie.com/program/python/44.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

:smile: :sad: :arrow: :cool: :confused: :cry: :eek: :evil: :exclaim: :idea: :lol: :mad: :mrgreen: :neutral: :question: :razz: :redface: :rolleyes: :surprised: :wink: :biggrin: :twisted: