数据归一化 minmax_scale()函数解析
minmax_scale()函数是来自sklearn.preprocessing
包中。sklearn.preprocessing.minmax_scale(X, feature_range=(0, 1), axis=0, copy=True)
该方法将每个特征放缩到给定范围内(默认范围0-1)
为什么要进行归一化:
- 数据存在不同的评价指标,其量纲或量纲单位不同,处于不同的数量级。解决特征指标之间的可比性,经过归一化处理后,各指标处于同一数量级,便于综合对比。
- 求最优解的过程会变得平缓,更容易正确收敛。即能提高梯度下降求最优解时的速度
- 提高计算精度。
但是归一化过程中会造成信息糗事
归一化方法常用方法有两种:
- 线性归一化(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()函数解析相关推荐
- ncnn数据归一化和结果解析
<ncnn数据归一化和结果解析> 近两年都在使用ncnn进行工程化部署,这里记录一下ncnn进行数据归一化的运算,以及得到的结果ncnn::Mat如何解析. Key Words:ncn ...
- 【Matlab系列】matlab中数据归一化方法
DATE: 2019.9.13 中秋 文章目录 1.参考 2.数据归一化 1.参考 matlab 中 将一组数据归一化到(0,1)之间 2.数据归一化 用函数mapminmax 默认的map范围是[- ...
- python数据归一化处理方法_python测试数据怎么归一化
在python上数据归一化后怎样还原目测是autonorm.py中lin 17 normdataset=zeros(shape(dataset)) 这一句 shape(dataset)返回的是元组,但 ...
- 归一化(Normalization)标准化(Standarlization)tensorflow和opencv区别:opencv之transform函数解析CHW与HWC:图像的线性数据格
目录 归一化:transforms.Normalize 归一化(Normalization) 标准化(Standarlization) tensorflow和opencv区别:opencv之trans ...
- json数据解析_VBA 实践指南 -- Split函数解析Json数据
什么是JSON? JSON(JavaScript Object Notation) 是一种及其轻量级的数据交换格式,它是 ECMAScript (欧洲计算机协会制定的JavaScript规范)的一个子 ...
- 归一化mysql函数_数据归一化和两种常用的归一化方法
数据归一化和两种常用的归一化方法 一.总结 一句话总结: min-max标准化:x* =(x-min)/(max-min):新数据加入,需重新计算max和min Z-score标准化:x* =(x-μ ...
- C语言sprintf函数解析(实现数据类型转换到字符串)
最近在将int转为char*字符串上出了问题,最后使用sprintf函数解决, 使用实例: char *char_num; int recv_num=-123456:sprintf(char_num, ...
- Matlab数据归一化和标准化函数
在用Matlab建立bp神经网络时,需要对特征值进行缩放,进行归一化.遇到以后,查阅了一些文章,进行了一些汇总. 标准化 premnmx()函数 用于将网络的输入数据或输出数据进行归一化,归一化后的数 ...
- matlab mat2gray函数 对图像数据归一化的理解以及互转
刚好今天也有需要用三维重建中的深度数据,数据值大于255,自己用matlab可以显示出来,如果直接保存成图片数据都是1,什么都看不到,拿给别人也没有用,于是就想到用mat2gray先将数据进行归一化到 ...
最新文章
- 在pymongo中使用distinct
- Jquery ajax json 不执行success的原因
- 再次分享一个多选文件上传方案
- 原始servlet+hibernate+struts2,从前台到后台的整个过程
- dedecms二次开发常用代码
- echart模块化单文件引入
- python3中property使用方法详解
- 统计一行文本的单词个数_NLP中的文本表示方法
- 若依框架集成redis缓存
- 常用ColorMatrixFilter收集
- 你知道大数据强大在哪里!!!你永远也不会猜到
- web前后台数据交互的四种方式
- JVM monitoring
- 《游戏设计艺术(第二版)》读书笔记
- VC编程实现运行Excel宏 Run
- CS269I:Incentives in Computer Science 学习笔记 Lecture 20: Fair Division(公平分配)(本系列完结撒花!)
- Java 静态代理
- 基于区块链的数字版权保护介绍
- git clean使用方法
- matlab中计算最大利润,最大利润问题
热门文章
- (17)UVM sequencer和driver
- 零学Java(7)之数据类型,小AD竟然solo不过小朋友
- 学院开展计算机基础知识比赛,信阳师范学院顺利举办第七届计算机基础知识决赛...
- Processing残影拖尾效果实现套路分享
- SpringCloud禁用Eureka自我保护模式
- Cocos2d之Box2d基础知识
- 计算机游戏如何产生娱乐效果,浅谈电脑游戏与信息技术教学
- easyExcel 复杂表头 动态表头
- CTF writeup 0_IDF实验室
- 用java代码输出我爱你_这是一段Java程序员写给最爱的老婆的代码。