1、归一化定义

归一化化就是要把你需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。归一化的原因是什么那?

2、归一化原因

一是,为了后面数据处理的方便,把不同量纲的东西放在同一量纲下比较,即把不同来源的数据统一到一个参考系下,这样比较起来才有意义。
简单的举个例子:一张表有两个变量,一个是体重kg,一个是身高cm。假设一般情况下体重这个变量均值为60(kg),身高均值为170(cm)。1,这两个变量对应的单位不一样,同样是100,对于身高来说很矮,但对于体重来说已经是超重了。另外,单位越小,数值越大,对结果的影响也越大,譬如170cm=1700mm。 简单讲,归一化的目的是可以用数值来直接进行比较,如果不归一化由于变量特性不同,同样加10,代表的意义不一样。
二是,保正程序运行时收敛加快,大部分模型归一化后收敛速度会加快。例如,下面的例子,房间数和面积数不在一个量纲上,面积数值太小,房间数太大,成椭圆状,按照梯度收敛速度会慢,理想的是数据类似圆圈的形状,经过有限几个步骤则收敛了。
三是,要注意的是,有的模型在归一化之后会影响效果,有的模型则不会。对于归一化是否影响模型效果,主要看模型是否具有伸缩不变性。

有些模型在各个维度进行不均匀伸缩后,最优解与原来不等价,例如SVM。对于这样的模型,除非本来各维数据的分布范围就比较接近,否则必须进行标准化,以免模型参数被分布范围较大或较小的数据dominate。
有些模型在各个维度进行不均匀伸缩后,最优解与原来等价,例如标准的logistic regression 和linear regression(加正则项后,正则项可能不具备伸缩不变性),简单的树模型(各个节点各算个的切分点)。对于这样的模型,是否标准化理论上不会改变最优解。但是,由于实际求解往往使用迭代算法,如果目标函数的形状太“扁”,迭代算法可能收敛得很慢甚至不收敛。所以对于具有伸缩不变性的模型,最好也进行数据标准化。但SVM则必须进行归一化。同的模型对特征的分布假设是不一样的。比如SVM 用高斯核的时候,所有维度共用一个方差,这不就假设特征分布是圆的么,输入椭圆的就坑了人家。
首先,对于gradient descent算法来说,learning rate的大小对其收敛速度至关重要。如果feature的scale不同,理论上不同的feature就需要设置不同的learning rate,但是gradient descent只有一个learning rate,这就导致不同feature的收敛效果不同,从而影响总体的收敛效果。所以在求解模型之前归一化不同feature的scale,可以有效提高gradient descent的收敛速度。

除此之外,如果feature的scale相差很大,则会出现scale越大的feature,对模型的影响越大。比如对于multivariate regression, 极端情况下, 有一个特征的值特别特别大,其他特征的值都特别特别小,那么cost function就被这个特别大的特征主导,甚至退化为univariate。即feature scale相差很大,线性回归模型得优化结果也会受到影响。

也需要注意的是,各维分别做归一化会丢失各维方差这一信息,但各维之间的相关系数可以保留

三、标准化方法

没有一种数据标准化的方法,放在每一个问题,放在每一个模型,都能提高算法精度和加速算法的收敛速度。
是否应该做数据标准化,用哪种标准化的方法,更多的是源于一种经验和尝试。
如果你长期做某个行业的某几类数据挖掘需求,自然知道选用哪种算法好,用什么标准化方法更优。这需要时间的积累,需要对数据挖掘的热情来支撑。
当然,也可以先做个较为合理的抽样(更倾向于分层抽样),比较不做数据标准化和做了数据标准化的效果,比较不同数据标准化方法之间的效果。毕竟数据总是多种多样,如果企业BI做得好,数据质量本身就高了,那其实可以偷一下懒的。反之,就多下功夫做好数据与处理,把数据打磨好了再放进模型里。方法有如下:
1、线性函数转换,表达式如下:
  y=(x-MinValue)/(MaxValue-MinValue)
  说明:x、y分别为转换前、后的值,MaxValue、MinValue分 别为样本的最大值和最小值。
  2、对数函数转换,表达式如下:
  y=log10(x)
  说明:以10为底的对数函数转换。
  3、反余切函数转换,表达式如下:
  y=atan(x)*2/PI
  4、式(1)将输入值换算为[-1,1]区间的值,在输出层用式(2)换算回初始值,其中 和分别表示训练样本集中负荷的最大值和最小值。
  在统计学中,归一化的具体作用是归纳统一样本的统计分布性。归一化在0-1之间是统计的概率分布,归一化在-1--+1之间是统计的坐标分布。

方法很多,min-max,z-score,p范数等

参考:
http://www.zhihu.com/question/37129350/answer/70640800
http://www.zhihu.com/question/30038463/answer/50491149

http://www.zhihu.com/question/30038463/answer/74894932
https://www.zhihu.com/question/20455227/answer/25237171

为什么要特征标准化及特征标准化方法相关推荐

  1. 机器学习——特征工程——数据的标准化(Z-Score,Maxmin,MaxAbs,RobustScaler,Normalizer)

    数据标准化是一个常用的数据预处理操作,目的是处理不同规模和量纲的数据,使其缩放到相同的数据区间和范围,以减少规模.特征.分布差异等对模型的影响. 比如线性回归模型.逻辑回归模型或包含矩阵的模型,它们会 ...

  2. 归一化MinMaxScaler()、标准化StandardScaler()(特征工程之特征预处理)

    文章目录 一.什么是特征预处理? 二.特征预处理常用方法:归一化.标准化 1.标准化MinMaxScaler() 1.1 归一化举例 1.2 归一化使用局限 2.标准化StandardScaler() ...

  3. 特征工程特征预处理归一化与标准化、鸢尾花种类预测代码实现

    一.特征预处理 特征工程目的:把数据转换成机器更容易识别的数据 scikit-learn:提供几个常见的实用程序函数和转换器类,以将原始特征向量更改为更适合下游估计器的表示形式.即通过一些转换函数将特 ...

  4. 机器学习特征工程之特征缩放+无量纲化:数据标准化(StandardScaler)

    机器学习特征工程之特征缩放+无量纲化:数据标准化(StandardScaler) 在Andrew Ng的机器学习课程里面,讲到使用梯度下降的时候应当进行特征缩放(Feature Scaling).进行 ...

  5. ML之FE:数据处理—特征工程之特征三化(标准化【四大数据类型(数值型/类别型/字符串型/时间型)】、归一化、向量化)简介、代码实现、案例应用之详细攻略

    ML之FE:数据处理-特征工程之特征三化(标准化[四大数据类型(数值型/类别型/字符串型/时间型)].归一化.向量化)简介.代码实现.案例应用之详细攻略 目录 真正意义的标准化与归一化 1.标准化/Z ...

  6. python预处理标准化_tensorflow预处理:数据标准化的几种方法

    tensorflow预处理:数据标准化的几种方法 发布时间:2018-08-09 19:39, 浏览次数:1774 , 标签: tensorflow 数据归一化问题是数据挖掘中特征向量表达时的重要问题 ...

  7. 情绪识别的多模态特征,分类器和融合方法研究

    Investigation of Multimodal Features, Classifiers and Fusion Methods for Emotion Recognition(情绪识别的多模 ...

  8. python 离散化_利用Python将数值型特征进行离散化操作的方法

    利用Python将数值型特征进行离散化操作的方法 如下所示: data = np.random.randn(20) factor = pd.cut(data,4) pd.get_dummies(fac ...

  9. 特征工程——连续特征与离散特征处理方法

    特征的标准化(归一化) 连续特征   z-score标准化:这是最常见的特征预处理方式,基本所有的线性模型在拟合的时候都会做 z-score标准化.具体的方法是求出样本特征x的均值mean和标准差st ...

  10. 【图像处理】——特征匹配(SIFT特征检测器+FLANN特征匹配方法+KNN近邻最优匹配筛选)——cv.xfeatures2d.SIFT_create()sift.detectAndCompute

    转载请注明地址 目录 1.特征检测和特征匹配方法 (1)特征检测算法 (2)特征匹配算法 (3)各种特征检测算法的比较 2.特征匹配的基本步骤(附带主要的函数) (1)图像预处理--灰度化(模板--查 ...

最新文章

  1. PMCAFF | 产品经理如何设计敏捷开发流程?
  2. 【jetson nano】 aarch64安装pycharm pytorch cuda
  3. Git.之.最小化配置
  4. because the principal dbo does not exist 问题解决方法
  5. Java获取方法信息(某一函数,方法也是一个对象)
  6. 移动开发解决方案之玩转输入框
  7. ORM中的事务和锁、Ajax异步请求和局部刷新、Ajax文件上传、日期时间类型的Json、多表查询图书系统
  8. java range注解_最全的Java Spring注解
  9. altium09怎么查元器件_在AD09中查找元件和封装
  10. 如何卸载2345soft文件夹
  11. java最新全套学习视频(java,前端,其他语言)
  12. 小程序京东首页底部导航栏代码
  13. js获取地理位置的经纬度
  14. 现货跟期货有什么区别(现货和期货交易区别)
  15. [BZOJ3837][Pa2013][随机][乱搞]Filary
  16. 怎么恢复360强力删除的文件?数据恢复这样做
  17. c语言中max代表什么,什么是C中的DBL_MAX?
  18. Java登录界面的实现(注册、登录、背景图片)
  19. 20180402-D · US Tuition Costs · ggplot2 geofacet 按地理位置分面的数据可视化 · R 语言数据可视化 案例 源码
  20. 方舟生存进化助手隐私政策条款

热门文章

  1. 周志华 《机器学习初步》模型评估与选择
  2. 【C++】字符串子串的系列问题
  3. android仿微信红包动画,Android仿微信打开红包动画(逐帧动画)
  4. 微信公众平台模版消息
  5. Windows实现微信双开
  6. qq邮箱收信服务器imap,普通IMAP、POP邮箱的设置 教你使用iPhone邮件客户端管理QQ邮箱...
  7. 没做好这些准备,千万不要婚前同居!!
  8. JTAG、JLink、ULINK、ST-LINK仿真器区别
  9. Mac在有S.M.A.R.T错误的情况下安装OSX系统
  10. 多核CPU的运行模式详解