均值归一化_数据预处理:标准化和归一化
网上很多关于标准化和归一化的文章,不少是误人子弟的存在。这篇文字希望给大家讲清讲透这两个概念。
一、标准化(standardization)
公式一般为:(X-mean)/std,其中mean是平均值,std是方差。
从公式我们可以看出,标准化操作(standardization)是将数据按其属性(按列)减去平均值,然后再除以方差。这个过程从几何上理解就是,先将坐标轴零轴平移到均值这条线上,然后再进行一个缩放,涉及到的就是平移和缩放两个动作。这样处理以后的结果就是,对于每个属性(每列)来说,所有数据都聚集在0附近,方差为1。计算时对每个属性/每列分别进行。
下面我们通过实操加深印象,并真正理解标准化的实际意义。使用sklearn中的preprocessing中的scale()函数,可以直接将给定数据进行标准化。
首先我们导入需要的库,和需要处理的数据。我们随便导入一支股票,000002万科a。(数据源来自tushare pro版,感谢挖地兔)。
![](http://p01.5ceimg.com/content/8f025e7e-7c11-eb11-8da9-e4434bdf6706.png)
接着,我们选取该股票最后的100个交易日的数据,选取价格和成交量两个特征作为演示。很显然,这两个特征量纲不一样,数值相差很大,需要对他们进行一个数据预处理。先看一下原始数据:
![](http://p01.5ceimg.com/content/90025e7e-7c11-eb11-8da9-e4434bdf6706.png)
对原始数据进行标准化,如下:
![](http://p01.5ceimg.com/content/91025e7e-7c11-eb11-8da9-e4434bdf6706.png)
看到变化了吗,虽然各个点的相对位置看上去还是没变,但是坐标轴变了。均值是0,方差为1。
还有一种标准话的方法是使用sklearn.preprocessing.StandardScaler类,主要是fit()和transform(),使用该类的好处在于可以保存训练集中的参数(均值、方差)直接使用其对象转换测试集数据。
二、归一化(scale,缩放到一个指定范围,一般是0到1之间)
公式一般为:(X-min)/(max-min),其中min和max分别是该属性的最小值和最大值。
归一化其实是一种不太标准的翻译而已,真正要理解它,只需要知道它是一种缩放就行。归一化操作的过程,首先是把某个属性(按列)的最大值和最小值之间的距离看成是单位1,然后再看x和最小值的距离占总距离的比例。所以它总是一个处于0到1之间的百分数。
使用sklearn中的preprocessing中的MinMaxScaler类,可以实现归一化,具体方法如下:
![](http://p01.5ceimg.com/content/92025e7e-7c11-eb11-8da9-e4434bdf6706.png)
各个点的相对位置还是没变,但是取值范围变成了[0,1]。
什么时候需要标准化和归一化?
那么是否任何情况都有必要进行标准化归一化呢?答案是否定的。我们所熟知的决策树、随机森林等概率模型,就不需要。因为它们并不关心变量的值,而是关心变量的分布和变量之间的条件概率。
用AI改变金融交易,欢迎关注微信公众号:炼金狂人
均值归一化_数据预处理:标准化和归一化相关推荐
- python 归一化_数据的标准化和归一化
数据的标准化 归一化 归一化的目标 归一化的好处 归一化的方法 无量纲表达式 为什么要对数据进行归一化处理 常见的数据归一化方法 Python归一化处理方法 数据的标准化 数据的标准化(normali ...
- dataframe数据标准化处理_数据预处理——标准化/归一化(实例)
这次我们来说说关于数据预处理中的数据标准化及归一化的问题.主要以理论+实例的方式为大家展示. 本次实验也将会展示部分数据以及代码,有兴趣的小伙伴可以自己动手试试~ 在本次实例过程中,我们使用的数据是: ...
- 对数坐标归一化_数据预处理-归一化/数据转换
有时候我们在拿到原始数据的时候,我们不能直接使用.大概场景有下面这些,我遇到的 1. 数字比较大,容易爆计算量,更不容易收敛 2. 比如房子价格这种变量,并不是正态分布,有时候不利于我们做一些和正态分 ...
- python代码实现中心化_数据预处理——标准化(附python代码)
数据标准化,是数据清洗的重要环节之一.主要目的是消除"量纲"和"不同规模"的影响,使其所放到相同的数据区间和范围,以减少规模.特征.分布差异等对数据模型的影响. ...
- 数据归一化处理方法_数据预处理:归一化和标准化
1. 概述 数据的归一化和标准化是特征缩放(feature scaling)的方法,是数据预处理的关键步骤.不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间 ...
- 梯度消失、梯度爆炸、过拟合问题之神经网络应对方案:数据预处理、批量归一化、非饱和激活函数、梯度缩放和梯度裁剪、权重初始化、提前终止、集成学习、l1l2、Dropout
数据预处理.批量归一化Batch Normalization.非饱和激活函数.梯度缩放(Gradient Scaling)和梯度裁剪(Gradient Clipping).权重初始化(Xavier+H ...
- 吴裕雄 python 机器学习——数据预处理标准化StandardScaler模型
from sklearn.preprocessing import StandardScaler#数据预处理标准化StandardScaler模型 def test_StandardScaler(): ...
- matlab 均值中心化,数据预处理之中心化(零均值化)与标准化(归一化)
在机器学习回归问题,以及训练神经网络过程中,通常需要对原始数据进行中心化(零均值化)与标准化(归一化)处理. 背景 在数据挖掘数据处理过程中,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响 ...
- 机器学习中数据预处理——标准化/归一化方法(scaler)
由于工作问题比较忙,有两周没有总结一下工作学习中遇到的问题. 这篇主要是关于机器学习中的数据预处理的scaler变化. 工作中遇到的问题是:流量预测问题,拿到的数据差距非常大,凌晨的通话流量很少几乎为 ...
最新文章
- iOS开发UI篇—UITableviewcell的性能优化和缓存机制
- python取均匀不重复的随机数
- python汽车仿真_汽车山羊问题的分析以及Python和MATLAB仿真实验
- uvalive5983(二分+dp)
- PostgreSQL csvlog 源码分析
- jre环境变量配置_详解java环境变量意思-用于解决环境搭建问题
- python传送带和斐波那契
- python编写姓名年龄_python小工具 - alert弹框输出姓名年龄、求和
- 基于JavaFX实现的数据库学生管理系统
- Salt-Syndic
- Ubuntu虚拟机及Petalinux开发平台安装
- Axure电脑web端通用元件库rplib文件格式+移动端app通用元件库rplib文件格式(内含使用教程)
- 因讨要介绍费引发纠纷 浙江龙湾一男子砍死房产中介
- 智能合约语言 传统编程语言 异同
- Linux之ansible 自动化运维工具
- libiconv android编译,linux环境下libiconv库基于Android NDK的编译方法
- acer 4741G驱动
- 【python】52周存钱法改进
- c语言编程对电脑配置的要求,请问学习电脑编程需要什么配置的笔记本电脑?价格多少?...
- Weakly Supervised Instance Segmentation using Class Peak Response