当前位置: 首页 > news >正文

【漫话机器学习系列】029.累积分布函数(Cumulative Distribution Function)

累积分布函数(Cumulative Distribution Function, CDF)

累积分布函数(CDF)是概率论和统计学中的一个基本概念,用于描述随机变量取值的累积概率分布情况。它在理论研究和实际应用中广泛使用。


定义

给定随机变量 X,其累积分布函数 F(x) 定义为:

F(x) = P(X \leq x)

说明
  • F(x):表示随机变量 X 的值小于或等于某个值 x 的概率。
  • P:表示概率。
性质
  1. 单调不减性F(x_1) \leq F(x_2),当 x_1 < x_2​ 时。
  2. 取值范围0 \leq F(x) \leq 1
  3. 极限性质
    • \lim_{x \to -\infty} F(x) = 0
    • F(x)=1\lim_{x \to +\infty} F(x) = 1
  4. 连续性:对于连续型随机变量,F(x) 是连续函数;对于离散型随机变量,F(x) 是阶梯函数。

类型
  • 连续型随机变量

    F(x) = \int_{-\infty}^x f(t) \, dt

    其中,f(x) 是概率密度函数(PDF)。

  • 离散型随机变量

    F(x) = \sum_{x_i \leq x} P(X = x_i)

    其中,P(X = x_i) 是随机变量在离散点 x_i​ 的概率。


图示

累积分布函数通常表现为一个逐步上升或连续上升的曲线,随着 x 的增加,曲线趋向于 1。

  1. 离散型随机变量:阶梯状。
  2. 连续型随机变量:平滑曲线。

示例
1. 离散型随机变量

假设 X 为投掷一个骰子的点数,其可能值为 1, 2, 3, 4, 5, 6,每个值的概率为 \frac{1}{6}​。累积分布函数为:

F(x) = \begin{cases} 0 & x < 1 \\ \frac{1}{6} & 1 \leq x < 2 \\ \frac{2}{6} & 2 \leq x < 3 \\ \frac{3}{6} & 3 \leq x < 4 \\ \frac{4}{6} & 4 \leq x < 5 \\ \frac{5}{6} & 5 \leq x < 6 \\ 1 & x \geq 6 \end{cases}

2. 连续型随机变量

假设 X 服从标准正态分布,其概率密度函数为:

f(x) = \frac{1}{\sqrt{2\pi}} e^{-\frac{x^2}{2}}

其累积分布函数为:

F(x) = \int_{-\infty}^x \frac{1}{\sqrt{2\pi}} e^{-\frac{t^2}{2}} \, dt

由于无法用初等函数表示,通常使用数值积分或标准正态分布表计算。


Python 实现
1. 连续型随机变量

使用 SciPy 计算正态分布的累积分布函数:

import numpy as np
from scipy.stats import norm
import matplotlib.pyplot as plt# 定义随机变量
x = np.linspace(-4, 4, 1000)
# 标准正态分布的CDF
cdf = norm.cdf(x)# 绘图
plt.plot(x, cdf, label='CDF of Standard Normal Distribution')
plt.xlabel('x')
plt.ylabel('F(x)')
plt.title('Cumulative Distribution Function')
plt.grid()
plt.legend()
plt.show()

 运行结果

plt.legend() plt.show()

2. 离散型随机变量

计算骰子点数的累积分布函数:

import numpy as np
import matplotlib.pyplot as plt# 假设 x 是 [1, 2, 3, 4, 5, 6]
x = np.arange(1, 7)
cdf = np.array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6])  # 示例 CDF 数据# 调整 y 的长度以匹配 x
y_adjusted = np.concatenate(([0], cdf))[:-1]plt.step(x, y_adjusted, where='post', label='CDF of Dice')
plt.legend()
plt.show()

 运行结果


应用
  1. 概率计算:通过 F(x),可以快速计算任意区间内的概率:

                                               P(a \leq X \leq b) = F(b) - F(a)
  2. 随机数生成:通过反向变换法生成符合特定分布的随机数。
  3. 统计分析:用于描述数据分布及模型拟合效果。

总结

累积分布函数是随机变量概率分布的重要工具,能够直观地描述随机变量的累积概率分布。通过 CDF,既可以快速计算概率,又能用于随机数生成和分布分析。无论是离散型还是连续型随机变量,CDF 都在理论研究和实际应用中扮演着重要角色。

相关文章:

【漫话机器学习系列】029.累积分布函数(Cumulative Distribution Function)

累积分布函数&#xff08;Cumulative Distribution Function, CDF&#xff09; 累积分布函数&#xff08;CDF&#xff09;是概率论和统计学中的一个基本概念&#xff0c;用于描述随机变量取值的累积概率分布情况。它在理论研究和实际应用中广泛使用。 定义 给定随机变量 X&am…...

设计模式之访问者模式:一楼千面 各有玄机

~犬&#x1f4f0;余~ “我欲贱而贵&#xff0c;愚而智&#xff0c;贫而富&#xff0c;可乎&#xff1f; 曰&#xff1a;其唯学乎” 一、访问者模式概述 \quad 江湖中有一个传说&#xff1a;在遥远的东方&#xff0c;有一座神秘的玉楼。每当武林中人来访&#xff0c;楼中的各个房…...

AI 编程的世界:用Cursor编写评分项目

AI 编程的世界&#xff1a;用Cursor编写评分项目 今天是2024年的最后一天&#xff0c;祝大家在新的一年&#xff0c;健康开心快乐&#xff01; 岁末之际&#xff0c;星辰为伴&#xff0c;灯火长明&#xff0c;我终于在 2024 年的最后一天成功上线了 AI 编程项目。回首这一年&am…...

Cesium教程(二十三):Cesium实现下雨场景

文章目录 实现效果代码引入js文件创建容器创建视图定义下雨场景完整代码下载实现效果 代码 在 Cesium 中利用PostProcessStageLibrary实现下雪场景,你可以按照以下步骤进行: 创建一个 PostProcessStage:首先,你需要创建一个PostProcessStage对象,它将用于定义下雪效果的渲…...

SpringCloudAlibaba技术栈-Higress

1、什么是Higress? 云原生网关&#xff0c;干啥的&#xff1f;用通俗易懂的话来说&#xff0c;微服务架构下Higress 就像是一个智能的“交通警察”&#xff0c;它站在你的网络世界里&#xff0c;负责指挥和调度所有进出的“车辆”&#xff08;也就是数据流量&#xff09;。它的…...

uniapp 微信小程序开发使用高德地图、腾讯地图

一、高德地图 1.注册高德地图开放平台账号 &#xff08;1&#xff09;创建应用 这个key 第3步骤&#xff0c;配置到项目中locationGps.js 2.下载高德地图微信小程序插件 &#xff08;1&#xff09;下载地址 高德地图API | 微信小程序插件 &#xff08;2&#xff09;引入项目…...

Springboot:后端接收数组形式参数

1、接收端写法 PermissionAnnotation(permissionName "",isCheckToken true)PostMapping("/batchDeleteByIds")public ReturnBean webPageSelf( NotNull(message "请选择要删除的单据&#xff01;") Long[] ids) {for (Long string : ids) {l…...

Postman[2] 入门——界面介绍

可参考官方 文档 Postman 导航 | Postman 官方帮助文档中文版Postman 拥有各种工具、视图和控件&#xff0c;帮助你管理 API 项目。本指南是对 Postman 主要界面区域的高级概述&#xff1a;https://postman.xiniushu.com/docs/getting-started/navigating-postman 1. Header&a…...

1月第四讲:Java Web学生自习管理系统

一、项目背景与需求分析 随着网络技术的不断发展和学校规模的扩大&#xff0c;学生自习管理系统的需求日益增加。传统的自习管理方式存在效率低下、资源浪费等问题&#xff0c;因此&#xff0c;开发一个智能化的学生自习管理系统显得尤为重要。该系统旨在提高自习室的利用率和…...

【Redis】Redis 典型应用 - 缓存 (cache)

目录 1. 什么是缓存 2. 使用 Redis 作为缓存 3. 缓存的更新策略 3.1 定期生成 3.2 实时生成 4. 缓存的淘汰策略 5. 缓存预热, 缓存穿透, 缓存雪崩 和 缓存击穿 关于缓存预热 (Cache preheating) 关于缓存穿透 (Cache penetration) 关于缓存雪崩 (Cache avalanche) 关…...

HTML——38.Span标签和字符实体

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>span标签和字符实体</title><style type"text/css">h1{text-align: center;}p{text-indent: 2em;}span{color: red;}</style></head><…...

ROS2+OpenCV综合应用--10. AprilTag标签码追踪

1. 简介 apriltag标签码追踪是在apriltag标签码识别的基础上&#xff0c;增加了小车摄像头云台运动的功能&#xff0c;摄像头会保持标签码在视觉中间而运动&#xff0c;根据这一特性&#xff0c;从而实现标签码追踪功能。 2. 启动 2.1 程序启动前的准备 本次apriltag标签码使…...

python Celery 是一个基于分布式消息传递的异步任务队列系统

Celery 是一个基于分布式消息传递的异步任务队列系统&#xff0c;主要用于处理耗时任务、定时任务和周期性任务。它能够将任务分配到多个工作节点&#xff08;Worker&#xff09;上执行&#xff0c;从而提高应用程序的性能和可扩展性。Celery 是 Python 生态中最流行的任务队列…...

嵌入式硬件杂谈(七)IGBT MOS管 三极管应用场景与区别

引言&#xff1a;在现代嵌入式硬件设计中&#xff0c;开关元件作为电路中的重要组成部分&#xff0c;起着至关重要的作用。三种主要的开关元件——IGBT&#xff08;绝缘栅双极型晶体管&#xff09;、MOSFET&#xff08;金属氧化物半导体场效应晶体管&#xff09;和三极管&#…...

麒麟信安云在长沙某银行的应用入选“云建设与应用领航计划(2024)”,打造湖湘金融云化升级优质范本

12月26日&#xff0c;2024云计算产业和标准应用大会在北京成功召开。大会汇集政产学研用各方专家学者&#xff0c;共同探讨云计算产业发展方向和未来机遇&#xff0c;展示云计算标准化工作重要成果。 会上&#xff0c;云建设与应用领航计划&#xff08;2024&#xff09;建云用…...

好用的随机生成图片的网站

官网&#xff1a; Lorem Picsum 获取自定义大小的随机图像 https://picsum.photos/200/300 获取正方形图像 https://picsum.photos/200 获取特定类型的图像 通过添加到 /id/{image} url 的开头来获取特定图像。 https://picsum.photos/id/237/200/300 获取静态随机图像…...

添加 env 配置,解决import路径问题

添加 env 配置&#xff0c;解决import路径问题 { // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息&#xff0c;请访问: https://go.microsoft.com/fwlink/?linkid830387 “version”: “0.2.0”, “configurations”: [ {"name&q…...

Go work stealing 机制

Go语言的Work Stealing&#xff08;工作窃取&#xff09;机制是一种用于调度Goroutines&#xff08;协程&#xff09;的策略&#xff0c;其核心目的是最大化CPU使用率&#xff0c;减少任务调度的开销&#xff0c;并提高并发性能和吞吐量。以下是Go Work Stealing机制的详细解释…...

基础数据结构--二叉树

一、二叉树的定义 二叉树是 n( n > 0 ) 个结点组成的有限集合&#xff0c;这个集合要么是空集&#xff08;当 n 等于 0 时&#xff09;&#xff0c;要么是由一个根结点和两棵互不相交的二叉树组成。其中这两棵互不相交的二叉树被称为根结点的左子树和右子树。 如图所示&am…...

《C++设计模式》策略模式

文章目录 1、引言1.1 什么是策略模式1.2 策略模式的应用场景1.3 本文结构概览 2、策略模式的基本概念2.1 定义与结构2.2 核心角色解析2.2.1 策略接口&#xff08;Strategy&#xff09;2.2.2 具体策略实现&#xff08;ConcreteStrategy&#xff09;2.2.3 上下文&#xff08;Cont…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

SpringCloudGateway 自定义局部过滤器

场景&#xff1a; 将所有请求转化为同一路径请求&#xff08;方便穿网配置&#xff09;在请求头内标识原来路径&#xff0c;然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持&#xff0c;都是在为未来积攒底气。 案例&#xff1a;OLED显示一个A 这边观察到一个点&#xff0c;怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 &#xff1a; 如果代码里信号切换太快&#xff08;比如 SDA 刚变&#xff0c;SCL 立刻变&#…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

如何在网页里填写 PDF 表格?

有时候&#xff0c;你可能希望用户能在你的网站上填写 PDF 表单。然而&#xff0c;这件事并不简单&#xff0c;因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件&#xff0c;但原生并不支持编辑或填写它们。更糟的是&#xff0c;如果你想收集表单数据&#xff…...