《机器学习数学基础》补充资料:标准差与标准化

1 标准差

我们经常使用平均数来大致了解一组数据,例如平均成绩、平均身高、平均寿命等等。但是如果只看平均数,不一定能充分了解整体情况。比如说你和某首富住同一个社区,你们社区平均每户年收入两千万,那么你家是有钱还是没钱?另外就是看到了平均工资,才知道自己“拖了后腿”——关于平均工资问题,在《机器学习数学基础》中有专门讨论,是否真的拖后腿了?通过统计学知识就能明了。

为了帮助我们更了解整体情况,需要更多统计量来进行描述。

其中一个统计量,就是用于描述数据的离散情况。换句话说,就是描述这组数据的所有数据,是很集中还是很分散。为了描述离散情况,首先想到的是:每一个数据离平均值有多远?如果对于数据 XXX 里的每个数据 xix_ixi ,我们都将它减去平均数 μX\mu_XμX ,然后再全部加起来,得到
∑i=1n(xi−μX)=∑i=1nxi−∑i=1nμX=nμX−nμX=0 \sum_{i=1}^n (x_i - \mu_X) = \sum_{i=1}^n x_i - \sum_{i=1}^n \mu_X = n\mu_X - n\mu_X = 0 i=1n(xiμX)=i=1nxii=1nμX=nμXnμX=0
这就很有意思了,结果为 0。因为有些数据比平均值大,有些比平均值小,正负自然会相互抵消。为了避免这种情况,我们改为先取绝对值再相加
∑i=1n∣xi−μX∣ \sum_{i=1}^n |x_i - \mu_X| i=1nxiμX
这样就没有正负抵消的问题了。这个式子中的每一项,叫做离均差,意思是每个数据离平均值有多远。然而这样计算起来不太方便,大量绝对值相加是很难处理的。所以我们改为先把每个离均差都平方,然后再相加
∑i=1n(xi−μX)2 \sum_{i=1}^n (x_i - \mu_X)^2 i=1n(xiμX)2
可是这个式子,如果数据的项数越多,加起来的结果岂不是越大吗?比如说一个班的考试成绩,如果隔壁班和本班有完全一样的成绩分布,两班合并在一起计算,结果就会变成两倍,但离散情况并没有变化。为了消除数据数量 nnn 的影响,我们再除以 nnn ,变成计算离均差平方的平均
∑i=1n(xi−μX)2n \frac{\sum_{i=1}^n (x_i - \mu_X)^2}{n} ni=1n(xiμX)2
这个式子,适合用来描述离散情况,称为方差(variance)。但因为我们先进行了平方运算,所以这样算出的结果,单位会与原来的数据不一致。如果我们希望单位保持一致,就将方差再开根号:
∑i=1n(xi−μX)2n \sqrt{\frac{\sum\limits_{i=1}^n (x_i - \mu_X)^2}{n}} ni=1n(xiμX)2
离均差平方的平均再开根号,这称为标准差(standard deviation)。为什么刚才说取绝对值相加比较不好算,平方后再相加却反而好算呢?我们可以将标准差定义中平方的部分展开:
∑i=1n(xi−μX)2n=∑i=1n(xi2−2μXxi+μX2)n=∑i=1nxi2−∑i=1n2μXxi+∑i=1nμX2n=∑i=1nxi2−2μX∑i=1nxi+μX2∑i=1n1n与下标 i 无关的可提出=∑i=1nxi2−2μX(nμX)+μX2⋅nn=∑i=1nxi2−2nμX2+nμX2n=∑i=1nxi2−nμX2n=∑i=1nxi2n−μX2 \begin{split} \sqrt{\frac{\sum\limits_{i=1}^n(x_i-\mu_X)^2}{n}}&=\sqrt{\frac{\sum\limits_{i=1}^n (x_i^2 - 2\mu_X x_i + \mu_X^2)}{n}} \\&=\sqrt{\frac{\sum\limits_{i=1}^n x_i^2 - \sum\limits_{i=1}^n 2\mu_X x_i + \sum\limits_{i=1}^n \mu_X^2}{n}} \\&= \sqrt{\frac{\sum\limits_{i=1}^n x_i^2 - 2\mu_X \sum\limits_{i=1}^n x_i + \mu_X^2 \sum\limits_{i=1}^n 1}{n}} \quad \text{与下标 i 无关的可提出} \\&= \sqrt{\frac{\sum\limits_{i=1}^n x_i^2 - 2\mu_X (n\mu_X) + \mu_X^2 \cdot n}{n}} \\&= \sqrt{\frac{\sum\limits_{i=1}^n x_i^2 - 2n\mu_X^2 + n\mu_X^2}{n}} \\&= \sqrt{\frac{\sum\limits_{i=1}^n x_i^2 - n\mu_X^2}{n}} = \sqrt{\frac{\sum\limits_{i=1}^n x_i^2}{n} - \mu_X^2} \end{split} ni=1n(xiμX)2=ni=1n(xi22μXxi+μX2)=ni=1nxi2i=1n2μXxi+i=1nμX2=ni=1nxi22μXi=1nxi+μX2i=1n1与下标 i 无关的可提出=ni=1nxi22μX(nμX)+μX2n=ni=1nxi22nμX2+nμX2=ni=1nxi2nμX2=ni=1nxi2μX2
这样便得到标准差的另一种公式,当我们只知道数据的平方和而不知道每一组数据的详细数值时,就可以使用这个公式。

注意

  1. 方差的符号可以写成 Var\text{Var}Varσ2\sigma^2σ2 ,其公式为:

σ2=∑i=1n(xi−μX)2n=∑i=1nxi2n−μX2 \sigma^2 = \frac{\sum\limits_{i=1}^n (x_i - \mu_X)^2}{n} = \frac{\sum\limits_{i=1}^n x_i^2}{n} - \mu_X^2 σ2=ni=1n(xiμX)2=ni=1nxi2μX2

  1. 标准差的符号可以写成 Var\sqrt{\text{Var}}Varσ\sigmaσ ,其公式为:

σ=∑i=1n(xi−μX)2n=∑i=1nxi2n−μX2 \sigma = \sqrt{\frac{\sum\limits_{i=1}^n (x_i - \mu_X)^2}{n}} = \sqrt{\frac{\sum\limits_{i=1}^n x_i^2}{n} - \mu_X^2} σ=ni=1n(xiμX)2=ni=1nxi2μX2

  1. 方差可以理解为计算正方形面积的平均,如下图所示。数据离平均值越远,算出的正方形面积就越大,会使方差的结果更大。

在这里插入图片描述

图 1:方差的几何意义
  1. 数据的平移不影响标准差,但伸缩会有影响。设 Y=aX+bY = aX + bY=aX+b,则:

σY=∑i=1n(yi−μY)2n=∑i=1n[(axi+b)−(aμX+b)]2n=∑i=1n[a(xi−μX)]2n=a2∑i=1n(xi−μX)2n=a2⋅∑i=1n(xi−μX)2n=∣a∣⋅∑i=1n(xi−μX)2n=∣a∣σX \begin{split} \sigma_Y &= \sqrt{\frac{\sum\limits_{i=1}^n (y_i - \mu_Y)^2}{n}} \\&= \sqrt{\frac{\sum\limits_{i=1}^n \left[(ax_i + b) - (a\mu_X + b)\right]^2}{n}} \\&= \sqrt{\frac{\sum\limits_{i=1}^n \left[a(x_i - \mu_X)\right]^2}{n}} \\&= \sqrt{\frac{a^2 \sum\limits_{i=1}^n (x_i - \mu_X)^2}{n}} \\&= \sqrt{a^2 \cdot \frac{\sum\limits_{i=1}^n (x_i - \mu_X)^2}{n}} \\&= |a| \cdot \sqrt{\frac{\sum_{i=1}^n (x_i - \mu_X)^2}{n}} \\&= |a| \sigma_X \end{split} σY=ni=1n(yiμY)2=ni=1n[(axi+b)(aμX+b)]2=ni=1n[a(xiμX)]2=na2i=1n(xiμX)2=a2ni=1n(xiμX)2=ani=1n(xiμX)2=aσX

  1. 由方差的第二个式子移项,可得:
    σ2+μX2=∑i=1nxi2n∑i=1nxi2=n(σX2+μX2) \begin{split} \sigma^2+\mu^2_X=\frac{\sum\limits_{i=1}^nx_i^2}{n} \\ \sum_{i=1}^n x_i^2 = n\left(\sigma_X^2 + \mu_X^2\right) \end{split} σ2+μX2=ni=1nxi2i=1nxi2=n(σX2+μX2)

这是一个实用的公式。

2 标准化

2 标准化

如果你上次数学考 70 分,这次考 50 分,那你是进步还是退步呢?当然,你的慈母很可能会不太高兴,竟然退步了 20 分!正当要执行家法时,你急忙抗辩:“等一下!上次数学全班平均 60 分,这次考试比较难,班级平均只有 40 分!我这两次都比平均高 10 分,应该不算退步吧!” 你的慈母听了觉得挺有道理,正当你松了口气时,一旁正在阅读《机器学习数学基础》(齐伟,电子工业出版社)的严父看不下去了:“这两次我都看过你班上的成绩单,上次标准差才 5 分,你比平均高两个标准差。这次标准差 10 分,你只比平均高一个标准差而已,所以你还是退步了。” 于是你还是被执行家法,然后好好学数学。你正生气觉得不理解,本来今天高高兴兴的,严父为什么要说这种话,这时刚好翻到《机器学习数学基础》上讲到数据的标准化,好像就和严父那番话有关系。

假设一种场景:小明身高 187 公分,家庭年收入 100 万元。因为小明并不帅,显然不是高富帅,但究竟说他高比较好,还是说他富比较好呢?身高和家庭年收入,显然是两种不同的数据,无法直接比较。但人性嘛,总想去比较,不能比也要比。于是采取相对比较的办法:小明班上平均身高 175 公分,标准差 4 公分,所以小明的身高在班上比平均多出 3 个标准差;班上家庭年收入平均 80 万元,标准差 20 万元,所以小明家的年收入在班上比平均多出 1 个标准差。这样看来,小明的 “富” 在班上似乎不是太突出,倒是身高相对来说在班上比较高。所以我们得出结论:小明(在这个班)是高而不是富!

为了方便计算比平均高几个标准差,我们对数据进行转换。使转换后的新数据具有平均数为 0、标准差为 1 的特性,这样只要一看新数据,就马上知道是比平均高多少个标准差了。那该如何设定数据转换呢?当然是这样:
Z=X−μXσX Z = \frac{X - \mu_X}{\sigma_X} Z=σXXμX
对于线性变换 Y=aX+bY = aX + bY=aX+b ,其平均数为:
μY=aμX+b \mu_Y = a\mu_X + b μY=aμX+b
直接将原平均数代入线性变换式子即可。所以 ZZZ 的平均数为:
μZ=μX−μXσX=0 \mu_Z = \frac{\mu_X - \mu_X}{\sigma_X} = 0 μZ=σXμXμX=0
又因为标准差与平移无关,且伸缩系数取绝对值,
σY=∣a∣σX \sigma_Y=|a|\sigma_X σY=aσX
所以 ZZZ 的标准差为:
σZ=∣1σX∣⋅σX=1 \sigma_Z = \left| \frac{1}{\sigma_X} \right| \cdot \sigma_X = 1 σZ=σX1σX=1

定义:数据的标准化

对数据 XXX 进行线性变换:
Z=X−μXσX Z = \frac{X - \mu_X}{\sigma_X} Z=σXXμX

这称为数据的标准化,数据 ZZZ 称为标准化数据,标准化数据的值称为 zzz 分数。

小明身高 187 厘米,进行标准化计算为:z=187−1754=3z = \frac{187 - 175}{4} = 3z=4187175=3

zzz 分数是 3,表示高出平均值 3 个标准差。小明的同学张三身高 173 厘米,进行标准化计算为:

z=173−1754=−0.5 z = \frac{173 - 175}{4} = -0.5 z=4173175=0.5
zzz 分数是 - 0.5,表示比平均值低 0.5 个标准差。

标准化数据还有一个特性,就是无单位。比如小明班上的身高,标准差是 4 厘米。如果将身高单位改用米,那么每个人的数据都变为原来的百分之一,例如小明的身高是 1.87 米,班上身高的标准差是 0.04 米。而小明身高的 zzz 分数,无论原数据用 187 厘米还是 1.87 米,计算结果都是 3。

再介绍一个与标准化概念类似,但不直接使用 zzz 分数的例子。我们所说的 IQ,并不是智商测试后的原始分数。而是先将原始分数按不同年龄分类,同年龄组的全球平均分数设定为 IQ100,标准差设定为 15。如果你的原始成绩比同年龄全球平均高 2 个标准差,那么你的智商就是 130;如果原始成绩比同年龄全球平均低 1.2 个标准差,那么你的智商就是 82。因此,从你的智商分数中,可以知道自己在同年龄群体中的相对水平。假设你 8 岁时做了一次智商测试,12 岁时再做一次,期间你的智力既没有进步也没有衰退,你的智商应该会下降,因为同年龄群体的整体水平提升了。

有一个国际组织叫门萨(MENSA),是一个高智商俱乐部,其入会门槛为 IQ130。别以为这听起来不高,这已经比平均值高 2 个标准差,符合条件的比例仅约为 2.5%!——对于这个数值,可以通过正态分布得到。

《机器学习数学基础》在各大平台有售,请认准作者和出版社

在这里插入图片描述

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

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

相关文章

深度学习 | 多类交叉熵(Categorical Cross Entropy)详解 + Python实现

在多分类任务中,模型输出一个概率分布,常用的损失函数是 Categorical Cross Entropy(多类交叉熵)。本文将带你理解其数学本质、应用场景、数值稳定性及完整 Python 实现。📘 一、什么是 Categorical Cross Entropy&…

MyBatis-Plus通用中等、大量数据分批查询和处理

函数式接口 获取分页数据接口 主要用于获取数据 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;FunctionalInterface public interface MyBatisPlusPageFunctionInterface<T> {Page<T> selectPage(Page<T> page);}数据处理接口 import…

Ps 2025安装包(Adobe Photoshop 2025)安装包免费免激活版下载 附图文详细安装教程

[软件名称]&#xff1a;Ps2025 V26.3 [软件大小]&#xff1a;4.86 G [系统要求]&#xff1a;支持Win7及更高版本 [夸克网盘下载https://pan.quark.cn/s/d35677af9ef9 &#xff08;建议用手机保存到网盘后&#xff0c;再用电脑下载&#xff09;更多免费软件见https://docs.qq.co…

Codeforces Round 1037 (Div. 3)(补题)

文章目录前言A.Only One DigitB.No Casino in the MountainsC. I Will Definitely Make ItD.This Is the Last TimeE.G-C-D, Unlucky!总结前言 感觉前四道&#xff0c;就是考对于题目的理解能力&#xff0c;以及自己的模拟能力 A.Only One Digit 题目传送门&#xff1a;Only …

基于单片机智能插座设计/智能开关

传送门 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品题目速选一览表 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品题目功能速览 概述 随着我国的电子计算机技术的快速发展以及居民对现实生活的要求也在不断提升&#xff0c;所以很多…

[Linux]git_gdb

一、git1. git 常用指令git status 查看仓库状态git add <文件名> 把文件添加到仓库暂存区git commit -m "信息" 把文件加入仓库git push 把本地仓库同步到远端git pull …

医疗AI与融合数据库的整合:挑战、架构与未来展望(下)

🩺 解决方案:引入融合数据库(Multi-modal Data Fusion DB) 医院引入一款支持图、向量、表、流的融合数据库(如Oracle ADW、Milvus+PostgreSQL、或某国产平台),完成了以下集成: 数据类型 来源系统 格式/模型 示例内容 基因组数据 NGS平台 VCF / JSON / 图 EGFR突变、A…

【深度强化学习】MIP-DQN 实现案例(完整Python代码)

目录MIP-DQN 算法概述建模基础训练阶段&#xff08;Training&#xff09;部署阶段&#xff08;Online Execution&#xff09;DNN 网络转化为 MIP 表达式性能指标完整 Python 代码实现主函数&#xff1a;random_generator_battery模型函数&#xff1a;MIP_DQN基础/专用库包安装模…

微信小程序 wx.request() 的封装

基于微信小程序的wx.request()方法封装下面是一个封装方案&#xff0c;满足您提出的所有要求&#xff1a;class HttpService {constructor() {this.baseUrl ; // 基础URLthis.pendingRequests new Map(); // 请求缓存池this.interceptors {request: [],response: []};}// 设…

yolo8实时识别目标(和平精英敌人+骨骼关键点)

现在需要识别人物的肢体&#xff08;姿态/骨骼关键点&#xff09;&#xff0c;即所谓的「姿态估计&#xff08;pose estimation&#xff09;」&#xff0c;以下是一些主流、训练好可直接使用的开源模型推荐&#xff0c;支持多人识别与骨骼关键点检测&#xff0c;适合你后续用于…

MyBatis动态SQL全解析:五大核心标签实战指南

MyBatis动态SQL全解析&#xff1a;五大核心标签实战指南 一、动态SQL的价值&#xff1a;告别硬编码时代 传统SQL拼接的痛点 // 传统方式需要手动拼接SQL字符串 StringBuilder sql new StringBuilder("SELECT * FROM orders WHERE 11"); if (status ! null) {sql.app…

线上 CPU 过高怎么排查

通过以下几个命令解决1、top命令&#xff0c;找到 CPU 过高的pid(进程); ​编辑 2、根据pid(进程)找到CPU过高的线程id;top -H -p pid(进程)3、把线程id转换16 进制的printf 0x%x\n 线程id4、导致CPU 飙升的线程异常信息&#xff0c;-A 30表示打印 30 行记录jstack pid(进程id)…

Letter Combination of a Phone Number

IntroduceProblem Analysis (Using “258” as example) //2 a b c //5 j k l //8 t u vPossible letter combinations: a, j, t (no further options, this is one combination)a, j, u (no further options, another combination)a, j, v (another c…

【问题解决】npm包下载速度慢

问题描述&#xff1a; npm包下载速度慢 问题原因&#xff1a; 为什么下载 npm 包速度慢&#xff1f; 在使用npm下包的时候&#xff0c;默认从国外的https://regitry.npmjs.org/服务器进行下载。此时&#xff0c;网络数据的传输需要经过漫长的海底光缆&#xff0c;因此下包速度…

Apache DolphinScheduler介绍与部署

目录 一、软件介绍 1、软件概述 2、发展历史 3、名词解释 4、模块介绍 软件部署 1、下载发布包 2、上传与解压 3、启动 4、浏览器验证 一、软件介绍 1、软件概述 Apache DolphinScheduler 是一个分布式易扩展的可视化DAG工作流任务调度开源系统。适用于企业级场景&…

Selenium 启动的浏览器自动退出问题分析

当 Selenium 启动的浏览器自动关闭时&#xff0c;通常是由于以下原因导致的&#xff1a;1. 脚本执行完毕原因&#xff1a;Selenium 脚本执行到末尾时&#xff0c;如果没有保持浏览器打开的代码&#xff08;如time.sleep()或循环&#xff09;&#xff0c;浏览器会自动关闭。解决…

rust实现的快捷补全到剪贴板的实用工具

最近在兼职项目中老是遇到这样的场景&#xff1a; 在云服务器之间通过scp命令传输文件&#xff0c;密码太长记不住(客户服务器不方便ssh-copy-id)在服务器上使用mysql命令登录修改数据&#xff0c;数据库密码太长记不住&#xff08;客户设置的密码&#xff0c;直接改掉哈&#…

信息系统风险的安全技术防范思路

针对信息系统风险的安全技术防范思路 降低风险&#xff0c;即提升了安全能力和水平 保护资产 加强信息系统软硬件及数据安全保护&#xff1b;减少脆弱性 通过研发、部署、应用各环节来尽量减少或避免脆弱性&#xff1b;应对威胁 采取防御措施&#xff0c;实施攻防对抗。

Java项目:基于SSM框架实现的网盘管理系统【ssm+B/S架构+源码+数据库+毕业论文】

摘 要 网络技术和计算机技术发展至今&#xff0c;已经拥有了深厚的理论基础&#xff0c;并在现实中进行了充分运用&#xff0c;尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代&#xff0c;所以对于信息的宣传和管理就很关键。因此文件信息的管理…

Echart 地图放大缩小

文章目录 常用方法 1. **开启 `roam` 属性** 2. **通过鼠标滚轮或手势缩放** 3. **设置初始缩放比例** 4. **通过按钮控制缩放** 5. **限制缩放范围** 6. **监听缩放和平移事件** 7. **结合 `dataZoom` 实现数据缩放** 总结 相关文章 在 ECharts 中,可以通过设置地图的 roam …