机器学习(归一化、去中心化、标准化)

2023-10-26

为什么要进行数据的预处理?

这需要分两种情况说明:

        1.数据数值很大

        2.数据数值很小

1.首先,对于一个数值非常之大的特征 T。

若其数值非常之大、区间也非常之大,例如区间范围为 [10^10,10^20]

        以线性拟合函数举例:

        f(w1,w2,\cdots ) = w1\times x1 + w2\times x2\cdots +b

        显然我们在进行机器学习拟合参数的时候,该数据轻微的变动将会给拟合函数带来很大的影响。

        假如说我们的特征 x1 区间范围非常之大。x1轻微的变动将会给 f() 函数带来很大的影响。如果直接进行拟合,我们可以预想到 w1 参数将会变得非常小且范围很狭窄。

        同理,有关w1的损失函数函数图像也将变得很狭窄。

        首先我们先来看一看正常的数值形成的正常的损失函数:

正常的特征带来的正常的损失函数
​​​​

        对于正常的损失函数从初始A点逐步按照步长梯度下降 ,最终会拟合到一个局部最小值,如上图。图中步长大致为2左右。

下面再让我们来看一看非正常的损失函数:

由于特征过大,使得损失函数非常狭窄

        而对于非正常的损失函数,即使初始点已经比较接近局部最小值,也会因为函数太过狭窄,步长直接跨越了中线,使得无法完成拟合,如图:反而loss越来越大。

        为了达成训练,你必须为每一个特征都设立一个单独的步长,这样才能达到全局特征的局部最小值,来完成训练,然鹅这想想就觉得爆炸,不仅是对人来说还是对代码效率来说。

2.其次,对于一个数值非常之小的特征 T。

若其数值非常之小、区间也非常之小的特征,例如区间范围为 [10^-20,10^-10]

显然,这使得loss函数非常非常的平缓且数值大。

一个非常平缓的loss函数

 对于一个模型是否完成了训练,我们大概采用了2种方案:

①设立阈值,若loss下降的量<阈值,则判断完成训练。

②看loss下降曲线,若曲线接近平滑,则判断完成训练。

显然对于一个过于平滑的loss函数,每一次的更新,loss下降数值都会很小,曲线都会非常平滑。

由此没有办法判断是否完成训练。

综上所诉:

若想要自己的模型足够优异,各个参数都能拟合到一个理想的数值,我们需要对初始数据进行标准化、去中心化、归一化等等操作。

1.去中心化:使得数据均值为0

操作:使数据每一项都减去均值:   x^{i} = x^{i} - \mu

(并没有什么软用,一般作为数据处理的中间性操作,单用去中心化没有任何实际的作用)

2.归一化:将数据映射到 [0,1] or [-1.1] 的区间之内

        ①映射到[0,1]范围内:

                操作:每一项减去最小值后都除以最大值与最小值之差 :  x^{i} = \frac{​{x^{i}-x_{min}}}{x_{max}-x_{min}}

        ②映射到[-1,1]范围内:

                操作:x^{i} = \frac{x^{i}-x_{min}}{x_{max}-x_{min}}\times 2-1

3.标准化:使得方差为1,均值为0

        操作:去中心化后,除以标准差。

        x^{i} = \frac{x^{i} - \mu }{\sigma }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

机器学习(归一化、去中心化、标准化) 的相关文章

随机推荐

  • echarts地图map下钻到镇街、KMZ文件转GeoJson、合成自定义区域

    echarts 地图map下钻到镇街 KMZ文件转GeoJson 合成自定义区域 我们可以通过 http datav aliyun com tools atlas 阿里旗下的高德地图提供的api 可以获取到中国各个省份 区级 县级的json
  • NAT技术的主要实现方式及其对网络应用程序的使用影响

    网络地址转换 NAT 是接入广域网 WLAN 的一种技术 能够将私有 保留 地址转化为合法的IP地址 它被广泛应用于各种类型Internet接入方式和各种类型的网络中 NAT的实现方式有三种 静态转换 动态转换和端口多路复用 静态转换设置起
  • Linux审计与日志安全加固

    审计和日志服务配置 auditctl 审计数据配置 日志文件最大参数 在储存策略 etc audit audit conf 中配置max log file
  • 高德地图精确查找与定位RegeocodeQuery与GeocodeQuery

    根据输入的字符串精确查找位置 用GeocodeQuery查找坐标 然后根据获取到的坐标 用RegeocodeQuery查询地址 例子中用了两个页面 一个是显示地址信息及定位的页面 另一个是搜索页面 点击搜索结果返回显示页面 显示信息并定位
  • iOS经典面试题总结--内存管理

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 我根据自己的情况做了一下总结 答案是我总结的 如有答的不好的地方 希望批评指正以及交流 谢谢 内存管理 1 什么是ARC ARC是automatic reference c
  • 【darknet】2、yolov4模型训练之模型训练

    文章目录 1 进行模型训练数据准备 1 1 划分训练和验证集 1 2 将数据标注格式转换为YOLO格式 2 修改配置文件 2 1 新建cfg vechle names 2 2 新建cfg vechle data 2 3 根据所选模型的不同
  • java连接数据库的Connection中的prepareStatement与createStatement的区别

    这两者的区别主要在于如何构造执行sql语句的对象 1 对于prepareStatement来说 其执行返回的是一个prepareStatement对象 而这个方法的描述是这样的 prepareStatement String sql 创建一
  • 在mac上安装gradle(超详细,直接按步骤操作即可轻松搞定)

    在mac上安装gradle 超详细 直接按步骤操作即可轻松搞定 第一步 就是先download最新版本的gradle 网址如下 http gradle org gradle download 然后将下载下来的zip包放解压到本地任意的路径上
  • input 标签里 value值从数据库读取出来的值显示一半或者没显示原因

    存进数据库的字符如下 读取数据出来显示如下 毒 这家超市被星巴克称为 价格警察 这段话没显示出来 原因 这样出来的是value 比海底捞服务更 毒 这家超市被星巴克称为 价格警察 input value值中的双引号被作为value值的结束符
  • 求二元函数最大值matlab,利用matlab, 二元函数求最大值

    求二元函数 z 0 2323 x 2 0 2866 2 2 0 5406 a0 2 1 0203 a0 2 x 2 x 2 y 2 0 5 tanh 2 x 2 y 2 0 5 x 2 0 5733 u0 2 的最大值 变量x和y都是在0
  • React -css in js框架style-components

    原文 https www jianshu com p 27788be90605 前言 前端飞一般的发展中 衍生出各式各样的框架 框架的目的是减轻开发人员的开发难度 提高效率 以前网页开发的原则是关注点分离 意思是各种技术只负责自己的领域 不
  • 【偷偷卷死小伙伴Pytorch20天-day16-损失函数】

    最近这几天忙着开学返校的事情 终于几番周折回到了学校 继续pytorch的学习打卡 一般来说 监督学习的目标函数由损失函数和正则化项组成 Objective Loss Regularization Pytorch中的损失函数一般在训练模型时
  • 服务器 文件类型,linux服务器支持的文件类型

    linux服务器支持的文件类型 内容精选 换一换 弹性云服务器卸载磁盘 弹性云服务器状态为stopped时支持系统盘 也就是 dev sda挂载点 和用户盘的卸载 没有操作系统限制 也不需要在弹性云服务器内部安装vmtools 弹性云服务器
  • 【深度解析→博文总结】李宏毅机器学习2023作业01Regression(COVID-19 Cases Prediction)

    文章目录 系列文章 简要说明 视频分享 作业详情 调参记录 Simple Baseline 1 96993 Medium Baseline 1 15678 Strong Baseline 0 92619 Boss Baseline 0 81
  • Seata1.2.0配置及分布式事务失效解决

    配置 版本说明 springCloud Alibaba组件版本关系 我用的是 cloud Alibaba 2 2 1 RELEASE springboot 2 2 5 RELEASE nacos 1 2 1 seata1 2 0 1 配置数
  • booth算法

    booth算法 1 booth算法定义 2 二进制乘法过程 3 二进制乘法转换成 booth乘法运算 4 Radix 2 Booth乘法器 5 Radix 4 Booth乘法器 6 Booth乘法器计算实例 1 booth算法定义 将乘数看
  • 【CV】图像分类中的细粒度/粗粒度怎么理解

    粗粒度图像分类 类别之间差异大 比如人 汽车 树 细粒度图像分类 类别之间差异小 比如200种鸟的分类 100种花的分类 由于细粒度类别属于同一个大类 所以各类别之间的差距很小 这些细微的差距容易被光照 颜色 背景 形状和位置等变化因素覆盖
  • Python作图——numpy库和matplotlib库

    一 numpy库 1 1概述 numpy是一个存储和处理多维数组 矩阵等的库 提供多种关于数组运算的数学函数 可供直接调用 1 1 1数据类型 numpy的数据类型包括整型 浮点型 复数型 布尔型等 在IDLE查询numpy支持的数据类型
  • MATLAB .dat读、存及简单处理

    文章目录 0 前言 1 思路 2 MATLAB 3 结语 0 前言 近期接触到二进制文件 dat 写一个简单的教程 假设文件内容为连续的通信数据 含有不符合的数据 对其进行简单剔除 1 思路 假设输入 dat文件共有3个整帧数据 每帧长度5
  • 机器学习(归一化、去中心化、标准化)

    为什么要进行数据的预处理 这需要分两种情况说明 1 数据数值很大 2 数据数值很小 1 首先 对于一个数值非常之大的特征 T 若其数值非常之大 区间也非常之大 例如区间范围为 10 10 10 20 以线性拟合函数举例 显然我们在进行机器学