机器学习---特征归一化处理
对于大多数的机器学习算法和优化算法来说,将特征值缩放到相同区间可以使得获取性能更好的模型。就梯度下降算法而言,例如有两个不同的特征,第一个特征的取值范围为1-10,第二个特征的取值范围1~10000。在梯度下降算法中,代价函数为最小平方误差函数,所以在使用梯度下降算法的时候,算法会明显的偏向于第二个特征。所以进行需要对特征归一化,今天我介绍一下归一化方法。
一、两种常用的归一化方法:
(1)min-max标准化
(2)Z-score标准化方法
1.什么是min-max标准化和Z-score标准化?
min-max标准化 是利用特征的最大最小值,通过对数据的每一个维度的值进行重新调节,[0,1]区间内将特征的值缩放到[0,1]区间,计算公式如下
Z-score标准化 是给与原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。经过处理的数据符合标准正态分布,即均值为0,标准差为1.计算公式如下
2.代码如何实现min-max标准化和Z-score标准化?
# ...
def standardize(X):"""特征标准化处理Args:X: 样本集Returns:标准后的样本集"""m, n = X.shape# 归一化每一个特征for j in range(n):features = X[:,j]meanVal = features.mean(axis=0)std = features.std(axis=0)if std != 0:X[:, j] = (features-meanVal)/stdelseX[:, j] = 0return Xdef normalize(X):"""Min-Max normalization sklearn.preprocess 的MaxMinScalarArgs:X: 样本集Returns:归一化后的样本集"""m, n = X.shape# 归一化每一个特征for j in range(n):features = X[:,j]minVal = features.min(axis=0)maxVal = features.max(axis=0)diff = maxVal - minValif diff != 0:X[:,j] = (features-minVal)/diffelse:X[:,j] = 0return X
3、应用场景
min-max标准化
min-max标准化方法比较适用在数值比较集中的情况。但是,如果max和min不稳定,很容易使得归一化
结果不稳定,使得后续使用效果也不稳定,实际使用中可以用经验常量值来替代max和min。而且当有新数据加入时,可能导致max和min的变化,需要重新定义。在不涉及距离度量、协方差计算、数据不符合正太分布的时候,可以使用该方法。
处理自然图像时,我们获得的像素值在 [0,255] 区间中,常用的处理是将这些像素值除以 255,使它们缩放到 [0,1]中.
Z-score标准化该标准化方法广泛用于机器学习算法(SVM,LR,NN)
在分类、聚类,算法中需要使用距离来度量相似性的时候、或者使用PCA(协方差分析)技术进行降维的时候,Z-score 标准化表现更好。
二、归一化的好处
1、数据的量纲不同;数量级差别很大
经过归一化处理后,原始数据转化为无量纲化指标测评值,各指标值处于同一数量级别,可进行综合测评分析。
如果直接用原始指标值进行分析,就会突出数值较高的指标在综合分析中的作用,相对削弱数值水平较低指标的作用。
2、避免数值问题
太大的数会引发数值问题。
3、平衡各特征的贡献
如果一个特征值域范围非常大,那么距离计算就主要取决于这个特征,从而与实际情况相悖(比如这时实际情况是值域范围小 的特征更重要)
4、一些模型求解的需要:加快了梯度下降求最优解的速度
三 、总结
(1)使用Max-Min标准化后,其协方差产生了倍数值得缩放,因此这种方式无法消除量纲对方差、协方差的影响,对PCA分析影响巨大;同时由于量纲的存在,使用不同的量纲,距离的计算结果会不同。
(2)在Z-score标准化(0均值标准化)中,新的数据由于对方差进行了归一化,这时候每个维度的量纲其实已经等价了,每个维度都服从均值为0,、方差为1的正态分布,在计算距离的时候,每个维度都是去量纲化的,避免了不同量纲的选取对距离计算产生的巨大影响。
总的来说,在算法后续计算中,涉及距离度量(聚类分析)或者协方差分析(PCA、LDA等)的,同时数据分布可以近似为状态分布,应当使用0均值化的归一方法。其它应用中,根据具体情况选用合适的归一化方法。
机器学习---特征归一化处理相关推荐
- 机器学习-特征归一化
要消除数据特征之间的量钢的影响,要对特征进行归一化处理,使得不同指标之间具有可比性. 对数值类型的特征做归一化可以将所有的特征都统一到一个大致相同的数值区间内.最常用的方法主要有以下两种: 1,线性函 ...
- python array按行归一化_机器学习 第40集:特征不归一化有什么危害?特征归一化公式是什么?( 含有笔记、代码、注释 )...
特征不归一化有什么危害?特征归一化公式是什么? ① 例如,我用一个人身高(cm)与脚码(尺码)大小来作为特征值,类别为男性或者女性.我们现在如果有5个训练样本,分布如下: A [(179,42),男] ...
- 【Python机器学习】Sklearn库中Kmeans类、超参数K值确定、特征归一化的讲解(图文解释)
一.局部最优解 采用随机产生初始簇中心 的方法,可能会出现运行 结果不一致的情况.这是 因为不同的初始簇中心使 得算法可能收敛到不同的 局部极小值. 不能收敛到全局最小值,是最优化计算中常常遇到的问题 ...
- 解读:为什么要做特征归一化/标准化?
↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:shine-lee,编辑:极市平台 本文解读了一项数据预处理中的重 ...
- 机器学习特征工程之特征缩放+无量纲化:数据标准化(StandardScaler)
机器学习特征工程之特征缩放+无量纲化:数据标准化(StandardScaler) 在Andrew Ng的机器学习课程里面,讲到使用梯度下降的时候应当进行特征缩放(Feature Scaling).进行 ...
- 机器学习特征工程之特征缩放+无量纲化:最小最大缩放(MinMaxScaler)
机器学习特征工程之特征缩放+无量纲化:最小最大缩放(MinMaxScaler) 在Andrew Ng的机器学习课程里面,讲到使用梯度下降的时候应当进行特征缩放(Feature Scaling).进行缩 ...
- 机器学习特征工程之特征缩放+无量纲化:最大绝对值缩放(MaxAbsScaler)
机器学习特征工程之特征缩放+无量纲化:最大绝对值缩放(MaxAbsScaler) 在Andrew Ng的机器学习课程里面,讲到使用梯度下降的时候应当进行特征缩放(Feature Scaling).进行 ...
- 机器学习-特征工程中的数据预处理
对于一个机器学习问题,数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限.由此可见,数据和特征在模型的整个开发过程中是比较重要.特征工程,顾名思义,是对原始数据进行一系列工程处理,将其提炼为 ...
- 深度学习特征归一化方法——BN、LN、IN、GN
前言 最近看到Group Normalization的论文,主要提到了四个特征归一化方法:Batch Norm.Layer Norm.Instance Norm.Group Norm.此外,论文还提到 ...
最新文章
- android 2.1 监听电话状态并自动接听来电
- C语言 cgi(2)
- spark-streaming问题集锦
- 网络编程懒人入门(二):快速理解网络通信协议(下篇)
- 解决cocos2dx调用removeFromParent后报错问题
- 实现下拉菜单的宽度与登录人ID长度的匹配
- matlab自家自减,【求助】VC环境下自增(++)自减(--) - 信息科学 - 小木虫 - 学术 科研 互动社区...
- Win-MASM64汇编语言-通用寄存器AX/BX/CX/DX/SI/DI/BP
- 分布式系统的一些基本概念
- MIPS中lw指令运行时间最长
- 解决 npm i 时出现npm ERRcode EINTEGRITY npm ERR sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+I
- java - 数据库账号的加密解密
- 笔记本电脑计算机里面怎么管理,笔记本电脑如何分区,详细教您笔记本电脑怎么分区...
- 宝塔linux优化wordpress,WordPress加速 宝塔面板速度优化方案 Memcached + Redis | 「讲文兄博客」...
- php用ckeditor无法上传大图片,php ckeditor上传图片文件大小限制修改
- S7-1200PLC定时器计数器的应用
- 【阿里云OSS对象存储搭配CDN加速使用】
- 人机交互新突破:百度发布主动多模态交互技术
- 机器学习读书笔记(四)朴素贝叶斯基础篇之网站账号分类
- 三星s3 android8.0,三星最新安卓8.0升级计划:这款老机子有戏
热门文章
- 转:听话,是一个员工最没用的品质!
- 计算机更改家庭组密码,Windows7中为家庭组设置密码后如何修改
- 河北农业大学海洋学院计算机老师,河北农业大学海洋学院简介
- HTML5七夕情人节表白网页制作【飘落蒲公英动画超酷炫的HTML5页面】HTML+CSS+JavaScript
- 这样做软件,才能让你的客户持续为你买单
- 树莓派安装python3.6_python3.6安装pycrypto
- kotlin中when表达式的三种用法
- 全网最全的 php8 新特性
- 计算机毕业设计JAVA企业人事管理系统mybatis+源码+调试部署+系统+数据库+lw
- Nodejs建立microblog微博网站