什么时候需要coinitialize_机器学习模型什么时候需要做数据标准化?

机器学习

Author:louwill

Machine Learning Lab

     一直都有朋友在做机器学习模型时有疑问:我的数据要不要做标准化处理?

60b72331632269ad5fe53c37d08f3cde.png

     这个问题笔者也思考过,只不过不够系统,观点也比较单一,所以才有了上图中的【变量单位之间数量级差异过大】的回答。就着这个话题,笔者查阅相关资料,相对这个问题进行一个详细的阐述。

什么是数据标准化

     在完整的机器学习流程中,数据标准化(Data Standardization)一直是一项重要的处理流程。一般我们将数据标准化放在预处理过程中,作为一项通用技术而存在。但很多时候我们并不清楚为什么要对数据做标准化处理,是不是做了标准化模型表现就一定会提升。

     数据标准化的直接定义如下公式所示:

     即对数据集特征每一数据减去特征均值后除以特征标准差。数据标准化可以将对应特征数据变换均值为0方差为1。经过数据标准化之后,数据集所有特征有了同样的变化范围。

     数据标准化一个最直接的应用场景就是:当数据集的各个特征取值范围存在较大差异时,或者是各特征取值单位差异较大时,我们是需要使用标准化来对数据进行预处理的。

   举个例子,一个包含两个特征的数据,其中一个特征取值范围为5000~10000,另一个特征取值范围仅有0.1-1,实际在建模训练时,无论什么模型,第一个特征对模型结果的影响都会大于第二个特征,这样的模型是很难有效做出准确预测的。

与数据归一化的区别

     数据归一化(Normalization)同样也是一项数据预处理技术。但一直以来,我们都是标准化和归一化傻傻分不清楚,并且存在长期混用的情况。数据归一化的计算公式如下:

a3cd730fe972194b4fae0c3e86017ac6.png

     或者是:

182ede16979a9efc899d7484f77feb27.png

     笔者查阅相关资料,发现对于这两种数据变换方法,一直没有统一的界定。很多时候都存在标准化和归一化概念混用的情况,有时候把z-score变换叫归一化,有时候又把min-max归一化叫标准化。通过比对,笔者认为标准化指的就是z-score变换,即前述第一个公式。归一化指的就是min-max变换,即前述第二或第三个公式。

     数据标准化为了不同特征之间具备可比性,经过标准化变换之后的特征分布没有发生改变。数据归一化的目的是使得各特征对目标变量的影响一致,会将特征数据进行伸缩变化,所以数据归一化是会改变特征数据分布的。

哪些模型对标准化处理比较敏感?

     机器学习中有部分模型是基于距离度量进行模型预测和分类的。由于距离对特征之间不同取值范围非常敏感,所以基于距离读量的模型是十分有必要做数据标准化处理的。

     最典型基于距离度量的模型包括k近邻、kmeans聚类、感知机和SVM。另外,线性回归类的几个模型一般情况下也是需要做数据标准化处理的。决策树、基于决策树的Boosting和Bagging等集成学习模型对于特征取值大小并不敏感。所以这类模型一般不需要做数据标准化处理。另外有较多类别变量的数据也是不需要做标准化处理的。

结论

     结论就是当数据特征取值范围或单位差异较大时,最好是做一下标准化处理。k近邻、kmeans聚类、感知机、SVM和线性回归类的模型,一般也是需要做数据标准化处理的。另外最好区分一下数据标准化和数据归一化。

参考资料:

https://towardsai.net/p/data-science/how-when-and-why-should-you-normalize-standardize-rescale-your-data-3f083def38ff

往期精彩:

【原创首发】机器学习公式推导与代码实现30讲.pdf

【原创首发】深度学习语义分割理论与实战指南.pdf

01804116497069a35adcd443bead4c87.png

喜欢您就点个在看!

5693f2dc06efcf39b5e0cd0bf39369c1.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/489462.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android fragmnet标签,在Android中为Fragment添加标签?

我试图在Fragment中添加一个TabHost。代码如下。这里里面的Fragment。我试图添加TabHost显示两个标签:package com.nordicsoft.dilosysNewVersion;import android.app.Fragment;import android.content.Intent;import android.os.Bundle;import android.view.Layout…

编程题走迷宫_C++程序算法题----迷宫(一)

题目:一天蒜头君掉进了一个迷宫里面,蒜头君想逃出去,可怜的蒜头君连迷宫是否有能逃出去的路都不知道。看在蒜头君这么可怜的份上,就请聪明的你告诉蒜头君是否有可以逃出去的路。输入格式第一行输入两个整数 n和 m,表示…

python中paramiko模块的使用

paramiko是python一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接1、可以远程操作服务器文件 例如: df:查看磁盘使用情况 mkdir:创建目录 mv/cp/mkdir/rmdir:对文件或目录进行操作 /sb…

机器人与人工智能: 应对全球挑战的终极途径

来源:中国指挥与控制学会欧洲机器人协会主席伯纳德利珀特(Bernd Liepert)近日在2019 世界机器人大会上透露,未来产业界将在欧洲机器协会的项目中发挥领导作用,欧盟正在推动一个2021 年至2027 年的新项目,总…

6位顺序号生成_分布式id生成策略,我和面试官扯了一个半小时

一、分布式系统带来ID生成挑战在分布式系统中,往往需要对大量的数据如订单、账户进行标识,以一个有意义的有序的序列号来作为全局唯一的ID。而分布式系统中我们对ID生成器要求又有哪些呢?全局唯一性:不能出现重复的ID号,既然是唯…

android壁纸居中,Android Launcher 如何实现壁纸居中

前言 欢迎大家我分享和推荐好用的代码段~~声明 欢迎转载,但请保留文章原始出处:CSDN:http://www.csdn.net雨季o莫忧离:http://blog.csdn.net/luckkof正文KK Launcher3的wallpaper显示是动态的,与Launc…

django外调用url_Django url

三 分组命名匹配上面的示例使用简单的正则表达式分组匹配(通过圆括号)来捕获URL中的值并以位置参数形式传递给视图。在更高级的用法中,可以使用分组命名匹配的正则表达式组来捕获URL中的值并以关键字参数形式传递给视图。在Python的正则表达式中,分组命名…

css在盒子中垂直居中和固定居中

顶部固定居中 <div class"w960 fixed">我是固定的</div>.w960{ width: 960px; margin:0 auto; } .fixed{ position: absolute; top:0; left: 0; right: 0; height: 90px; background: #ececec; } 垂直居中 <div id"box"><div class&q…

数据库的前世今生

译者 | 谭开朗编辑 | 屠敏来源 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;【CSDN 编者按】被称之为基础软件三驾马车之一的数据库&#xff0c;在经历了层次型和网状型、关系型数据型库以及更加强大的数据管理功能等三个时期之后&#xff0c;其在未来的发展历程中还…

python常用算法有哪些_python常见的排序算法有哪些?

大家都知道&#xff0c;关于python的算法有很多&#xff0c;其中最为复杂的就是python的排序算法&#xff0c;因为它并不是单一的&#xff0c;而是复杂的&#xff0c;关于排序算法就有好几种不同的方式&#xff0c;大家可以根据以下内容&#xff0c;结合自己的项目需求&#xf…

android app links,Android APP Links 配置

一. 简介在Instant App开发中&#xff0c;需要app支持Instant App Links. 本文中&#xff0c;主要介绍其作用&#xff0c;配置必需条件&#xff0c;配置的过程。二. 作用App Links 本质上是 Deep Link 的一种延伸&#xff0c;我们知道&#xff0c;Deep Link配置在Manifest之后&…

adnroid 打包问题 :compileReleaseJavaWithJavac

今天打包的时候&#xff0c;由于着急。改了些本地的变化就assembleRelease. 然后就报错&#xff1a; compileReleaseJavaWithJavac 后来网上乱找&#xff0c;。。。。 之后我想到先跑一下&#xff0c;果然是因为少一个字符串。 所以&#xff0c;以后打包的时候&#xff0c;…

联想e480一键恢复小孔_联想电脑如何一键恢复系统

联想电脑的一键还原系统在需要使用的时候直接按下一键还原按键即可&#xff0c;那么大家知道吗?今天小编与大家分享下联想电脑系统恢复的具体操作步骤&#xff0c;有兴趣的朋友不妨了解下。联想电脑系统恢复方法重要提醒&#xff1a;在您做一键恢复到出厂设置前&#xff0c;请…

【边缘计算】对边缘计算的理解与思考

来源&#xff1a;边缘计算社区在2019年第三届边缘计算技术研讨会上华为高级产业发展经理、ECC需求与总体组副主席黄还青发表了《ECC及华为在边缘计算领域的思考与实践》主题演讲&#xff0c;本文为黄还青演讲中对边缘计算理解及思考。首先我们认为边缘计算的兴起应该是在过去三…

python中注释的快捷键_【Python】注释

一、Python注释&#xff1a; 1.单行注释 python中单行注释采用 # 开头。 #!/usr/bin/python # coding:utf-8 import os import sys import optparse def print_name(): name os.path.dirname(sys.argv[0]) print name #打印输出 print_name() 2.多行注释 python 中多行注释使用…

【代码笔记】iOS-实现网络图片的异步加载和缓存

代码&#xff1a; - (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view.self.title"EGOImageViewDemo"; //实现网络图片的异步加载和缓存 EGOImageView *imageView [[EGOImageView alloc] initWithPlaceholderImage:[UIIm…

python executemany执行延迟_运维架构师-Python 自动化运维开发-031

*运维架构师-Python 自动化运维开发-031十九、Python3 操作数据库1、Python3 操作 MySQL1、基本介绍Python3 操作 MySQL 数据库 可以使用的模块是 pymysql 和 MySQLdb。这个两个模块都是通过自己的 API 执行原生的 SQL 语句实现的。MySQLdb 是最早出现的一个操作 MySQL 数据库的…

bilibili 解析_用 Python 抓取 bilibili 弹幕并分析!

时隔一年&#xff0c;嵩哥带来他的新作《雨幕》。他依旧认真创作&#xff0c;追求高品质&#xff0c;作品在发表之前已听了五百遍以上。如此高品质的音乐&#xff0c;大家如何评价呢&#xff1f;通过哔哩哔哩上的视频弹幕&#xff0c;感受一下。01 实现思路首先&#xff0c;利用…

2019中国科学院、中国工程院院士增选名单正式发布

来源&#xff1a;医谷医学讯 今日&#xff0c;“两院”院士2019年增选名单正式公布。中国科学院选举产生了64名中国科学院院士和20名中国科学院外籍院士。中国工程院共选举产生75位院士和29位外籍院士。2019年新当选中国科学院院士名单&#xff08;共64人&#xff0c;分学部按姓…

微信 小程序 canvas

测试手机为IPHONE6,开发者工具版本0.10.102800。开发者工具0.11.112301版本也一样 微信小程序里的canvas 非 h5 canvas有很多不一样的地方&#xff0c;以下把微信小程序的canvas叫做wxcanvas 下面全是我一点点测试出的干货&#xff0c;耐心看&#xff1a; 1.wxcanvas,不像h5can…