当前位置: 首页 > 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 都在理论研究和实际应用中扮演着重要角色。

http://www.lryc.cn/news/512853.html

相关文章:

  • 设计模式之访问者模式:一楼千面 各有玄机
  • AI 编程的世界:用Cursor编写评分项目
  • Cesium教程(二十三):Cesium实现下雨场景
  • SpringCloudAlibaba技术栈-Higress
  • uniapp 微信小程序开发使用高德地图、腾讯地图
  • Springboot:后端接收数组形式参数
  • Postman[2] 入门——界面介绍
  • 1月第四讲:Java Web学生自习管理系统
  • 【Redis】Redis 典型应用 - 缓存 (cache)
  • HTML——38.Span标签和字符实体
  • ROS2+OpenCV综合应用--10. AprilTag标签码追踪
  • python Celery 是一个基于分布式消息传递的异步任务队列系统
  • 嵌入式硬件杂谈(七)IGBT MOS管 三极管应用场景与区别
  • 麒麟信安云在长沙某银行的应用入选“云建设与应用领航计划(2024)”,打造湖湘金融云化升级优质范本
  • 好用的随机生成图片的网站
  • 添加 env 配置,解决import路径问题
  • Go work stealing 机制
  • 基础数据结构--二叉树
  • 《C++设计模式》策略模式
  • JavaScript学习记录6
  • 如何在没有 iCloud 的情况下将数据从 iPhone 传输到 iPhone
  • Doris安装部署
  • [服务器][教程]Ubuntu24.04 Server开机自动挂载硬盘教程
  • io多路复用, select, poll, epoll
  • k8s-1.28.2 部署prometheus
  • 记录第一次跑YOLOV8做目标检测
  • 使用Python爬取BOSS直聘职位数据并保存到Excel
  • node.js之---集群(Cluster)模块
  • SSM-Spring-IOC/DI对应的配置开发
  • 一文大白话讲清楚CSS元素的水平居中和垂直居中