minmax_scale()函数是来自sklearn.preprocessing包中。sklearn.preprocessing.minmax_scale(X, feature_range=(0, 1), axis=0, copy=True)
该方法将每个特征放缩到给定范围内(默认范围0-1)

为什么要进行归一化:
  1. 数据存在不同的评价指标,其量纲或量纲单位不同,处于不同的数量级。解决特征指标之间的可比性,经过归一化处理后,各指标处于同一数量级,便于综合对比。
  2. 求最优解的过程会变得平缓,更容易正确收敛。即能提高梯度下降求最优解时的速度
  3. 提高计算精度。

但是归一化过程中会造成信息糗事

归一化方法常用方法有两种:
  • 线性归一化(minmax_scale)
    minmax_scale()变换函数为min-max标准化,也称为离差标准化,是对原始数据的线性变换,min-max标准化方法的缺陷在当有新数据加入时,可能会导致X.max和X.min的值发生变化,需要重新计算。
    Xscaled=X−X.min(axis=0)X.max(axis=0)−X.min(axis=0)⋅(max−min)+minXscaled=X−X.min(axis=0)X.max(axis=0)−X.min(axis=0)⋅(max−min)+minX_{scaled}=\frac{X-X.min(axis=0)}{X.max(axis=0)-X.min(axis=0)} \cdot (max-min) + min
    max,min是给定放缩范围的最大值和最小值
    通俗地解释 :
    归一化结果=该点样本值与最小样本的差样本该轴跨度⋅放缩范围+放缩最小值归一化结果=该点样本值与最小样本的差样本该轴跨度⋅放缩范围+放缩最小值归一化结果=\frac{该点样本值与最小样本的差}{样本该轴跨度}\cdot 放缩范围+放缩最小值
  • Z-score标准差标准化方法。
    Xscaled=X−μσXscaled=X−μσX_{scaled}=\frac{X-\mu}{\sigma}
    x为某一具体数值μμ\;\mu是平均值σσ\;\sigma是标准差

调用方法:

>>> from sklearn.preprocessing import minmax_scale
>>> x = [0,1,2,3,4,5]
>>> minmax_scale(x)
array([0. , 0.2, 0.4, 0.6, 0.8, 1. ])
>>> y = [[0,0,0],[1,1,1],[2,2,2]]
>>> minmax_scale(y)
array([[0. , 0. , 0. ],[0.5, 0.5, 0.5],[1. , 1. , 1. ]])
>>> minmax_scale(y, axis=1)
array([[0., 0., 0.],[0., 0., 0.],[0., 0., 0.]])
>>> y = [[0,1,2],[1,2,3],[2,3,4]]
>>> minmax_scale(y)
array([[0. , 0. , 0. ],[0.5, 0.5, 0.5],[1. , 1. , 1. ]])
>>> minmax_scale(y, axis=1)
array([[0. , 0.5, 1. ],[0. , 0.5, 1. ],[0. , 0.5, 1. ]])

用于将数据归一化处理
minmax_scale()函数源码如下(加注释)

def minmax_scale(X, feature_range=(0, 1), axis=0, copy=True):# sklearn.utils.check_array() 数据转化numpy# FLOAT_DTYPES = (numpy.float64, numpy.float32, numpy.float16)X = check_array(X, copy=False, ensure_2d=False, warn_on_dtype=True, dtype=FLOAT_DTYPES)# ndim数据纬度original_ndim = X.ndimif original_ndim == 1:# 如果数据纬度为n*1 reshape 1*nX = X.reshape(X.shape[0], 1)# 将属性放缩到一个指定的最大值和最小值之间s = MinMaxScaler(feature_range=feature_range, copy=copy)# fit_transform 先拟合数据,再进行标准化if axis == 0:X = s.fit_transform(X)else:X = s.fit_transform(X.T).Tif original_ndim == 1:# 将多维数组降位一维 返回视图(会改变原矩阵)X = X.ravel()return X

Reference:
http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.minmax_scale.html#sklearn.preprocessing.minmax_scale
https://github.com/scikit-learn/scikit-learn/blob/a24c8b46/sklearn/preprocessing/data.py#L390
https://www.zhihu.com/question/20455227

数据归一化 minmax_scale()函数解析相关推荐

  1. ncnn数据归一化和结果解析

    <ncnn数据归一化和结果解析>   近两年都在使用ncnn进行工程化部署,这里记录一下ncnn进行数据归一化的运算,以及得到的结果ncnn::Mat如何解析. Key Words:ncn ...

  2. 【Matlab系列】matlab中数据归一化方法

    DATE: 2019.9.13 中秋 文章目录 1.参考 2.数据归一化 1.参考 matlab 中 将一组数据归一化到(0,1)之间 2.数据归一化 用函数mapminmax 默认的map范围是[- ...

  3. python数据归一化处理方法_python测试数据怎么归一化

    在python上数据归一化后怎样还原目测是autonorm.py中lin 17 normdataset=zeros(shape(dataset)) 这一句 shape(dataset)返回的是元组,但 ...

  4. 归一化(Normalization)标准化(Standarlization)tensorflow和opencv区别:opencv之transform函数解析CHW与HWC:图像的线性数据格

    目录 归一化:transforms.Normalize 归一化(Normalization) 标准化(Standarlization) tensorflow和opencv区别:opencv之trans ...

  5. json数据解析_VBA 实践指南 -- Split函数解析Json数据

    什么是JSON? JSON(JavaScript Object Notation) 是一种及其轻量级的数据交换格式,它是 ECMAScript (欧洲计算机协会制定的JavaScript规范)的一个子 ...

  6. 归一化mysql函数_数据归一化和两种常用的归一化方法

    数据归一化和两种常用的归一化方法 一.总结 一句话总结: min-max标准化:x* =(x-min)/(max-min):新数据加入,需重新计算max和min Z-score标准化:x* =(x-μ ...

  7. C语言sprintf函数解析(实现数据类型转换到字符串)

    最近在将int转为char*字符串上出了问题,最后使用sprintf函数解决, 使用实例: char *char_num; int recv_num=-123456:sprintf(char_num, ...

  8. Matlab数据归一化和标准化函数

    在用Matlab建立bp神经网络时,需要对特征值进行缩放,进行归一化.遇到以后,查阅了一些文章,进行了一些汇总. 标准化 premnmx()函数 用于将网络的输入数据或输出数据进行归一化,归一化后的数 ...

  9. matlab mat2gray函数 对图像数据归一化的理解以及互转

    刚好今天也有需要用三维重建中的深度数据,数据值大于255,自己用matlab可以显示出来,如果直接保存成图片数据都是1,什么都看不到,拿给别人也没有用,于是就想到用mat2gray先将数据进行归一化到 ...

最新文章

  1. 在pymongo中使用distinct
  2. Jquery ajax json 不执行success的原因
  3. 再次分享一个多选文件上传方案
  4. 原始servlet+hibernate+struts2,从前台到后台的整个过程
  5. dedecms二次开发常用代码
  6. echart模块化单文件引入
  7. python3中property使用方法详解
  8. 统计一行文本的单词个数_NLP中的文本表示方法
  9. 若依框架集成redis缓存
  10. 常用ColorMatrixFilter收集
  11. 你知道大数据强大在哪里!!!你永远也不会猜到
  12. web前后台数据交互的四种方式
  13. JVM monitoring
  14. 《游戏设计艺术(第二版)》读书笔记
  15. VC编程实现运行Excel宏 Run
  16. CS269I:Incentives in Computer Science 学习笔记 Lecture 20: Fair Division(公平分配)(本系列完结撒花!)
  17. Java 静态代理
  18. 基于区块链的数字版权保护介绍
  19. git clean使用方法
  20. matlab中计算最大利润,最大利润问题

热门文章

  1. (17)UVM sequencer和driver
  2. 零学Java(7)之数据类型,小AD竟然solo不过小朋友
  3. 学院开展计算机基础知识比赛,信阳师范学院顺利举办第七届计算机基础知识决赛...
  4. Processing残影拖尾效果实现套路分享
  5. SpringCloud禁用Eureka自我保护模式
  6. Cocos2d之Box2d基础知识
  7. 计算机游戏如何产生娱乐效果,浅谈电脑游戏与信息技术教学
  8. easyExcel 复杂表头 动态表头
  9. CTF writeup 0_IDF实验室
  10. 用java代码输出我爱你_这是一段Java程序员写给最爱的老婆的代码。