核密度估计KDE和概率密度函数PDF(深入浅出)

目录

    • 1. 和密度估计(KDE)
      • 核密度估计的基本原理
      • 核密度估计的公式
      • 核密度估计的应用
      • Python中的KDE实现
        • 示例代码
      • 结果解释
        • 解释结果
      • 总结
    • 2. 概率密度函数(PDF)
      • 概率密度函数(PDF)是怎么工作的:
      • 用图画来解释
        • 解释这个图:
      • 问题解答:
      • 总结
    • 3. 核密度估计(KDE)和概率密度函数(PDF)之间的关系
        • 故事开始:
      • 第一种方法:概率密度函数(PDF)
      • 第二种方法:核密度估计(KDE)
      • 总结一下:
      • 问题解答:

1. 和密度估计(KDE)

KDE,全称为核密度估计(Kernel Density Estimation),是一种非参数方法,用于估计随机变量的概率密度函数。与传统的直方图不同,KDE能够提供一个更平滑和连续的密度估计,适用于更细致的分布分析。

核密度估计的基本原理

核密度估计通过对每个数据点应用一个核函数,并将这些核函数进行叠加来构建密度估计。核函数通常是一个对称的、非负的函数,具有单位面积。常见的核函数包括高斯核(Gaussian kernel)、均匀核(Uniform kernel)、三角核(Triangular kernel)等。

核密度估计的公式

给定样本数据 { x 1 , x 2 , … , x n } \{x_1, x_2, \ldots, x_n\} {x1,x2,,xn},核密度估计的公式为:
f ^ ( x ) = 1 n h ∑ i = 1 n K ( x − x i h ) \hat{f}(x) = \frac{1}{n h} \sum_{i=1}^{n} K\left(\frac{x - x_i}{h}\right) f^(x)=nh1i=1nK(hxxi)
其中:

  • f ^ ( x ) \hat{f}(x) f^(x) 是在点 x x x 处的估计密度值。
  • K K K 是核函数。
  • h h h 是带宽(平滑参数),控制估计的平滑程度。带宽越大,估计越平滑;带宽越小,估计越细致。

核密度估计的应用

核密度估计在数据分析和统计建模中有广泛应用,特别是在探索性数据分析中,用于查看数据分布的形状和特性。

Python中的KDE实现

在Python中,SciPy和Seaborn库提供了便捷的核密度估计功能。以下是一个使用Seaborn和SciPy进行核密度估计的示例:

示例代码
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import gaussian_kde
import seaborn as sns

# 生成一些示例数据
data = np.random.normal(0, 1, size=1000)

# 使用SciPy进行核密度估计
kde_scipy = gaussian_kde(data, bw_method=0.3)
x = np.linspace(min(data), max(data), 1000)
kde_values = kde_scipy(x)

# 使用Seaborn进行核密度估计和绘图
plt.figure(figsize=(10, 6))
sns.histplot(data, kde=True, stat="density", bins=30, label='Histogram with KDE', color='blue', alpha=0.6)
plt.plot(x, kde_values, color='red', lw=2, label='KDE (SciPy)')
plt.xlabel('Value')
plt.ylabel('Density')
plt.legend()
plt.title('Kernel Density Estimation')
plt.show()

结果解释

在这个示例中:

  • 生成了一些服从正态分布的示例数据。
  • 使用SciPy的gaussian_kde函数进行了核密度估计,并绘制了估计的密度曲线。
  • 使用Seaborn的histplot函数绘制了包含KDE的直方图。
解释结果

核密度估计图展示了数据的平滑分布,与传统的直方图相比,KDE图更为连续和平滑,能够更好地反映数据的实际分布情况。

总结

核密度估计(KDE)是一种强大的工具,用于估计和可视化数据的概率密度函数。它通过平滑的数据分布提供了比直方图更细致的分布视图,在数据分析中非常有用。

2. 概率密度函数(PDF)

概率密度函数(PDF) 是用来描述连续随机变量在某个特定值附近的可能性的一种函数。它帮助我们理解数据是如何分布的。

想象一下你在一个游乐园里玩捞鱼游戏。

  • 你有一个大水池,里面有很多小鱼,每条鱼的位置都不一样。
  • 如果你想知道在某个特定位置附近有多少鱼,你可以用一个网在那个位置捞鱼。
  • 如果在这个位置附近有很多鱼,那这个位置的“鱼密度”就很高。
  • 如果只有几条鱼,那这个位置的“鱼密度”就很低。

概率密度函数(PDF)是怎么工作的:

  1. 表示密度

    • PDF 就像是一个“鱼密度”图。它告诉你在水池的每个位置,鱼的密度有多高。
    • PDF 的值可以很大,表示这个位置附近的鱼很多。PDF 的值也可以很小,表示这个位置附近的鱼很少。
  2. 总面积为1

    • 虽然 PDF 的值可以很高,但整个水池的密度总和必须是1。这表示所有的鱼都在这个水池里。
  3. 计算概率

    • 如果你想知道在一个范围内捞到鱼的概率,你可以看这个范围内的“鱼密度”图,然后把这个范围内的密度值加起来。
    • 比如,如果你想知道在水池左边1/4的地方捞到鱼的概率,你可以看这部分的“鱼密度”图,然后加起来。这就是PDF的积分。

用图画来解释

假设我们有一个简单的例子,水池里鱼的密度是这样的:
在这里插入图片描述

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm

# 定义均值和标准差
mu = 0
sigma = 1

# 生成数据点
x = np.linspace(mu - 3*sigma, mu + 3*sigma, 1000)
pdf = norm.pdf(x, mu, sigma)

# 绘制正态分布的概率密度函数
plt.plot(x, pdf, 'r-', lw=2, label='PDF')
plt.fill_between(x, pdf, alpha=0.5, color='red')
plt.xlabel('位置')
plt.ylabel('密度')
plt.title('鱼密度图(概率密度函数)')
plt.legend(loc='best')
plt.show()
解释这个图:
  • 横轴表示水池的位置。
  • 纵轴表示鱼的密度。
  • 曲线上的每个点表示在那个位置附近的鱼的密度。
  • 红色的区域表示鱼的密度,整个红色区域的面积总和是1。

问题解答:

:为什么有些位置的密度会很高呢?

:就像在水池里,如果很多鱼集中在某个地方,这个地方的密度就会很高。概率密度函数(PDF)也是一样,它告诉我们在数据中某些值附近数据有多集中。如果很多数据都集中在一个值附近,这个值的密度就会很高。

总结

  • PDF 就像是一个密度图,它告诉我们数据在不同位置的密度有多高。
  • 总面积为1 表示所有的数据都在这个范围内。
  • PDF的值 可以很大,但它表示的是密度,而不是直接的数量。

希望这个解释能够帮助小朋友理解概率密度函数(PDF)的基本概念。如果有更多问题,随时可以问我哦!

3. 核密度估计(KDE)和概率密度函数(PDF)之间的关系

核密度估计(KDE)和概率密度函数(PDF)是用来表示数据分布的两种方法。我们可以通过一个简单的故事来帮助理解它们之间的关系。

故事开始:

想象一下,你在生日派对上有一个大蛋糕,你和你的朋友们都喜欢不同口味的蛋糕。为了让每个人都开心,你决定用两种方法来展示大家最喜欢的口味。

第一种方法:概率密度函数(PDF)

PDF就像是在蛋糕上插蜡烛

  • 想象一个蛋糕,每个蛋糕上面插满了蜡烛。每个蜡烛代表一个不同口味的蛋糕片。
  • 如果某种口味有很多蜡烛,就意味着很多人喜欢这个口味。比如,如果巧克力味的蛋糕上插了很多蜡烛,那说明大家都很喜欢巧克力味。
  • 但是这些蜡烛的高度可以非常高,也可以非常低。即使有些蜡烛很高,也不代表这些口味的蛋糕片会比其他口味的蛋糕片更多。

第二种方法:核密度估计(KDE)

KDE就像是用蛋糕刀把蛋糕切成很多片

  • 想象现在你拿了一把蛋糕刀,把整个蛋糕切成很多片,每片蛋糕代表不同口味的蛋糕。
  • 当你切蛋糕的时候,每个切片的大小表示有多少人喜欢这个口味。如果某个口味有很多人喜欢,这个切片就会比较大。
  • 切片之间的边界是平滑的,没有突然的变化。这使得每个切片的大小表示的更加平滑和准确。

总结一下:

  • PDF:就像蛋糕上的蜡烛。蜡烛越高,表示那个地方的数据越密集,但是蜡烛高度可以超过1米,因为它表示的是密度。
  • KDE:就像用蛋糕刀切蛋糕。切片的大小表示数据的密度,切得越平滑,表示数据分布越连续。

问题解答:

:为什么蜡烛有时会很高呢?

:蜡烛的高度表示密度。即使高度超过1米,它表示的是数据集中在那个位置的密度,而不是直接的数量。KDE的平滑切片能更好地展示每种口味在整个蛋糕中的分布情况。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

澳大利亚TikTok直播为什么需要海外直播专线?

近年来,许多卖家为了解决澳大利亚TikTok直播中的卡顿和高延迟问题,纷纷选择使用海外直播专线。这种专线服务是一种高效、低延迟的数据传输解决方案,专为需要高质量网络连接的场合设计。 与公共互联网相比,海外直播专线提供更稳定、…

在Linux下直接修改磁盘镜像文件的内容

背景 嵌入式Linux系统通常在调试稳定后,会对磁盘(SSD、NVME、SD卡、TF卡)做个镜像,通常是.img后缀的文件,以后组装新设备时,就将镜像文件烧录到新磁盘即可,非常简单。 这种方法有个不便之处&a…

99%的人忽视了这一点:活着本身就是人生的意义,别让抑郁和内耗成为你的枷锁!

人没必要抑郁和精神内耗,不结婚,不生子,赚不到钱,没考上名牌大学,没有好工作等等,其实都没什么关系。 因为大多数人生是没有什么意义,或者说,活着就是最大的意义。 抑郁和精神内耗…

接口测试(2)

单接口测试 CtrlD 复制 因为单接口的时候主要改变测试用例数据 自动判定响应结果 postman断言 //断言响应状态码为200 pm.test("Status code is 200", function () {pm.response.to.have.status(200); }); //断言返回数据中包括(成功) //预期结…

14.x86游戏实战-汇编指令cmp test

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 工具下载: 链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…

移除元素的讲解,看这篇就够了!

一:题目 博主本文将用指向来形象的表示下标位的移动。 二:思路 1:两个整形,一个start,一个end,在一开始都 0,即这里都指向第一个元素。 2:在查到val之前,查一个&…

策略路由和路由策略的区别详解

先说策略路由也就是 PBR: 它不会影响路由表的生成,设备的路由表是已经存在而且稳定的。 举个例子: 用 TCP/IP 路由技术一书的表述就是:策略路由就是一个复杂的静态路由。 总结:策略路由是一个基于路由表的影响特定数…

Linux | 安装lb-toolkits 1.2.4库

Linux | 安装 lb-toolkits 最近又需要下载葵花的数据,之前分享过一次代码。今天发现之前的环境不小心被我删了,而运行相关的代码需要安装lb-toolkits这个库,今天正好记录了一下安装lb-toolkits的过程。 这里安装的版本是1.2.4,别…

兼容性报错--调整字符集解决

文章目录 错误解决办法Unicode 字符集(两个字节来表示一个字符)多字节字符集(一个字节来表示一个字符)如何选择字符集char与wchar_t的区别LPCSTR与LPCWSTR的区别 错误 解决办法 切换字符集类型 Unicode 字符集(两个字节来表示一个字符) 优点: 支持更多的字符集…

高效前端开发:解密pnpm的存储与链接

什么是pnpm PNPM(Performant NPM)是一种快速且节省磁盘空间的包管理工具。相较于其他包管理器如NPM和Yarn,PNPM通过独特的存储机制和链接技术解决了许多常见的问题。以下是PNPM如何避免这些问题以及其关键技术的详细介绍。 特性 PNPM Store…

6.Python学习:异常和日志

1.异常的抓取 1.1异常的概念 使用异常前: print(1/0)使用异常后:错误提示更加友好,不影响程序继续往下运行 try:print(10/0) except ZeroDivisionError:print("0不能作为分母")1.2异常的抓取 第一种:如果提前知道可…

[C++] 由C语言过渡到C++的敲门砖

命名空间 在C/C中,变量、函数和后⾯要学到的类都是⼤量存在的,这些变量、函数和类的名称将都存在于全局作⽤域中,可能会导致很多冲突。使⽤命名空间的⽬的是对标识符的名称进⾏本地化,以避免命名冲突或名字污染 。 在同一个工程中…

可视采耳仪器什么牌子好?年度必备五大可视耳勺品牌分享

无线可视挖耳勺作为近年来新兴的个护健康产品,受到了越来越多消费者的关注和喜爱。这种挖耳勺采用了先进的无线技术和高清摄像头,能够让人们更加清晰地观察自己耳内的状况,从而更加安全、有效地清洁耳朵。 但随着可视挖耳勺市场扩大&#xff…

老师怎样提高学生的听课效率?

在课堂上,我们常常面临一个问题:如何提高学生的听课效率?这是一个让无数教师头疼的问题。学生是否全神贯注,是否能够吸收和理解课堂上的知识,这直接关系到教学的成败。那么,作为教师,我们能做些…

可以添加todo清单桌面小组件的便签哪个好?

在我们快节奏的生活中,有效的时间管理和任务追踪是必不可少的。为了实现这一目标,许多人选择使用桌面便签,尤其是那些具有Todo清单桌面小组件的便签。但是,面对市场上众多选择,可以添加todo清单桌面小组件的便签哪个好…

STM32的SPI接口详解

目录 1.SPI简介 2.SPI工作原理 3.SPI时序 3.1 CPOL(Clock Polarity,时钟极性): 3.2 CPHA(Clock Phase,时钟相位): 3.3 四种工作模式 4.相关代码 4.1使能片选信号 4.2使能通…

vue学习day01-vue的概念、创建Vue实例、插值表达式、响应式、安装Vue开发者工具

1、vue的概念 Vue是一个用于构建用户界面的渐进式 框架 (1)构建用户界面:基于数据动态渲染页面 (2)渐进式:循序渐进的学习 (3)框架:一条完整的项目解决方案&#xff…

回溯算法-以医院信息管理系统为例

1.回溯算法介绍 1.来源 回溯算法也叫试探法,它是一种系统地搜索问题的解的方法。 用回溯算法解决问题的一般步骤: 1、 针对所给问题,定义问题的解空间,它至少包含问题的一个(最优)解。 2 、确定易于搜…

Redis代替Session实现共享

集群的session共享问题 session共享问题:多台tomcat并不共享session存储空间,当请求切换到不同的tomcat服务时导致数据丢失的问题。 session的替代方案: 数据共享内存存储key、value结构 将redis替换session可以解决session共享问题

一文学会 BootStrap

文章目录 认识BootStrap历史优缺点使用注意安装CDN源码引入包管理器 媒体查询屏幕尺寸的分割点(Breakpoints)响应式容器网格系统基本使用底层实现.container.row.col、.col-份数 网格嵌套自动布局列 Auto-layout响应式类 Responsive Class 响应式工具类-…