机器学习---为什么要对数据进行归一化处理?
归一化化定义:我是这样认为的,归一化化就是要把你需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。首先归一化是为了后面数据处理的方便,其次是保正程序运行时收敛加快。
方法有如下:
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之间是统计的坐标分布。
在喂给机器学习模型的数据中,对数据要进行归一化的处理。
为什么要进行归一化处理,下面从寻找最优解这个角度给出自己的看法。
例子
假定为预测房价的例子,自变量为面积,房间数两个,因变量为房价。
那么可以得到的公式为:
其中
代表房间数,
代表
变量前面的系数。
其中
代表面积,
代表
变量前面的系数。
首先我们祭出两张图代表数据是否均一化的最优解寻解过程。
未归一化:
归一化之后
为什么会出现上述两个图,并且它们分别代表什么意思。
我们在寻找最优解的过程也就是在使得损失函数值最小的theta1,theta2。
上述两幅图代码的是损失函数的等高线。
我们很容易看出,当数据没有归一化的时候,面积数的范围可以从0~1000,房间数的范围一般为0~10,可以看出面积数的取值范围远大于房间数。
影响
这样造成的影响就是在画损失函数的时候,
数据没有归一化的表达式,可以为:
造成图像的等高线为类似椭圆形状,最优解的寻优过程就是像下图所示:
而数据归一化之后,损失函数的表达式可以表示为:
其中变量的前面系数几乎一样,则图像的等高线为类似圆形形状,最优解的寻优过程像下图所示:
从上可以看出,数据归一化后,最优解的寻优过程明显会变得平缓,更容易正确的收敛到最优解。
这也是数据为什么要归一化的一个原因。
机器学习---为什么要对数据进行归一化处理? 相关文章
GPU---并行计算利器
简介: 源于阿里巴巴CCO《猿来如此》分享1?GPU是什么? ? ? 如图1所示,这台PC机与普通PC机不同的是这里插了7张显卡,左下角是显卡,在中间的就是GPU芯片。显卡的处理器称为图形处理器(GPU),它是显卡的“心脏”,与CPU类似,只不过GPU是专为执行复杂的数学
笔谈Github上新鲜出炉的深度学习系统mxnet的中文介绍
简介: 凌晨时看到一篇,新鲜出炉的深度学习系统mxnet的文章。关键已经有了中文介绍,译者是muli@cs.cmu.edu,地址在https://github.com/dmlc/mxnet/issues/797。 内容如下: MXNet设计和实现简介 神经网络本质上是一种语言,我们通过它来表达对应用问题的理
学习:ThinkPHP部署目录
下面由 thinkphp 框架教程栏目给大家介绍ThinkPHP部署目录,希望对需要的朋友有所帮助! 一、问题:根据文档2.2.3部署目录说明写项目时对目录结构很是迷惑 二、解决:(官方给出两种部署方案) 1. 官方推荐方案 官方推荐方案:(目录如下图) 操作 步骤: 1.1
js高级用法----手写js原生方法
1、call 方法 /* * * _call * * @param { context } context * @param { arguments } arguments */ Function.prototype._call = function (context) { // 如果没有传或传的值为空对象 context指向window context = context || window let fn = Symbol(contex
Python学习系列之数据结构(七)
一、程序的组织结构 1996年,计算机科学家证明了这样的事实:任何简单或复杂的算法都可以有顺序结构、选择结构和循环结构这三种基本结构组合而成 二、程序的顺序结构 顺序结构:程序从上到下顺序的执行代码,中间没有任何的判断和跳转,直到程序执行完成 举
网络流学习笔记
网络流学习笔记 最新update:2020.11.19:初学网络流,包括最大流的Edmonds-Karp算法 上次update:NULL 写博客(×) 试图理解算法(√) 1.什么是网络流: 这里可以举一个生动形象的例子: 某个村庄刚刚引进了一套水利系统。整个系统价值1,000,000,000,000
已经过去的2018以及不能颓废的2019(上)
--- title: 已经过去的2018以及不能颓废的2019(上) date: 2019-01-10 22:43:03 tags: 随笔 categories: - 杂谈 --- Hi there 现在是2019年1月10日夜。之前看过很多人的2018年度总结,拖到现在才开始写自己的。 我想我还是没变,还是爱笑爱闹爱耍宝逗乐,还
学习python能做什么
学习python能做的有:1、Python可用于开发基于控制台的应用程序;2、Python在多媒体部分开发,证明是非常方便的;3、Python也可以用于开发基于Web的应用程序;4、使用python处理数据;5、系统编程等等。 相关免费学习推荐:python视频教程 学习python能做的
学习在python中实现自动导入缺失的库
python教程栏目介绍实现自动导入缺失的库。 导入失败问题,通常分为两种:一种是导入自己写的模块(即以 .py 为后缀的文件),另一种是导入三方库。本文主要讨论第二种情况,今后有机会,我们再详细讨论其它的相关话题。 解决导入 Python 库失败的问题,其实
汇编语言是面向机器的语言吗
汇编语言是面向机器的程序设计语言。汇编语言是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。 机器语言 计算机的硬件作为一
机器学习---为什么要对数据进行归一化处理? 图文文章
素数筛——详解
素数筛——详解 判断一个数是否是素数,首先我们明晰素数的概念。 素数:素数一般指质数。质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。 暴力 由此我们可以从2遍历到x-1,判断x能否被整除,写出最简单暴力的IsPrime(int x) bool I
超简单的openCV4环境配置教程
超简单的openCV4环境配置教程 目录结构 openCV4.4+VS2017+win10 配置包含目录 配置库目录 配置链接器 配置环境变量 运行测试代码 1.openCV4.4+VS2017+win10 1.1.openCV环境准备 去官网下载opencv4.4版本,选择windows的opencv版本 解压放在设定的目录下 1.2.V
linux如何查看登录日志
具体命令: (推荐教程:linux教程) last -f /var/log/wtmp 该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件。因此随着系统正常运行时间的增加,该文件的大小也会越来越大,增加的速度取决于系统用户登录的次数。 该日志文件可以用来查看用
Interacting with browser
Interacting with browser We can get an element reference from the DOM,so that we can interacte with the page. document is created by the browser