核密度估计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://xiahunao.cn/news/3224070.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

websocket推送消息,模拟推送

上一篇文章:什么是webSocket?以及它的一些相关理论知识 背景: MQTT 的发布/订阅模式与 WebSocket 的双向通信特性相结合。 通过将 MQTT 与 WebSocket 结合使用,可以在 Web 应用中实现高效、实时的消息传输,特别适用于…

来一组爱胜品1133DN PRO打印机的照片

刚拆箱的机器正面照片 打开前盖正准备要安装原装耗材 下图是原装耗材,硒鼓型号是DR2833、碳粉盒型号是TN2833,鼓组件打印页数12000页,TN2833标准容量粉盒打印页数1600页/5%覆盖率,TN2833H大容量粉盒打印页数3000页/5%覆盖率、TN2833L超大容量…

h5 video 标签播放经过 java 使用 ws.schild( jave、ffmpeg ) 压缩后的 mp4 视频只有声音无画面的问题排查记录

1. 引入 ws.schild MAVEN 依赖&#xff1a; <dependency><groupId>ws.schild</groupId><artifactId>jave-all-deps</artifactId><version>3.5.0</version></dependency><dependency><groupId>ws.schild</grou…

SQL 与 NoSQL 数据库:一场关于灵活性与结构的对话

文章目录 引言SQL 数据库&#xff1a;传统之光定义特征优势缺点 NoSQL 数据库&#xff1a;新时代的弹性定义特征优势缺点 何时选择 NoSQL&#xff1f;场景1&#xff1a;海量数据与高并发场景2&#xff1a;灵活性需求场景3&#xff1a;实时数据分析场景4&#xff1a;分布式系统 …

2024年7月1日,公布的OpenSSH的漏洞【CVE-2024-6387】

目录 ■概要 ■概要&#xff08;日语&#xff09; ■相关知识 openssh 和 ssh 有区别吗 如何查看 openssh的版本 漏洞描述 glibc Linux是什么 如何查看系统是不是基于 Gibc RHEL Linux 是基于Glibc的Linux吗 还有哪些 Linux版本是基于 GNU C库&#xff08;glibc&…

算力狂飙|WAIC 2024上的服务器

7月7日&#xff0c;2024世界人工智能大会暨人工智能全球治理高级别会议&#xff08;WAIC 2024&#xff09;在上海落下帷幕。这场备受瞩目的AI盛宴与热辣夏日碰撞&#xff0c;吸引了全球科技、产业及学术界的广泛关注&#xff0c;线下参观人数突破30万人次&#xff0c;线上流量突…

gitlab-runner安装部署CI/CD

手动安装 卸载旧版&#xff1a; gitlab-runner --version gitlab-runner stop yum remove gitlab-runner下载gitlab对应版本的runner # https://docs.gitlab.com/runner/install/bleeding-edge.html#download-any-other-tagged-releasecurl -L --output /usr/bin/gitlab-run…

通用后台管理(二)——项目搭建

目录 前言 一、安装vue-cli依赖 1、使用yarn下载vue-cli 2、使用npm下载 3、检查一下是否下载成功 二、创建项目 1、创建项目&#xff0c;my-app是项目名称 2、 这里选择vue 2&#xff0c;蓝色表示选中的。 3、启动项目 三、下载项目依赖 四、配置项目 1、修改esli…

【从零开始实现stm32无刷电机FOC】【理论】【3/6 位置、速度、电流控制】

目录 PID控制滤波单独位置控制单独速度控制单独电流控制位置-速度-电流串级控制 上一节&#xff0c;通过对SVPWM的推导&#xff0c;我们获得了控制电机转子任意受力的能力。本节&#xff0c;我们选用上节得到的转子dq轴解耦的SVPWM形式&#xff0c;对转子受力进行合理控制&…

STM32实战篇:按键控制LED

按键控制LED 功能要求 有两个按键&#xff0c;分别控制两个LED灯。当按键按下后&#xff0c;灯的亮暗状态改变。实物如下图所示&#xff1a; 由图可知&#xff0c;按键一端直接接地&#xff0c;故另一端所对应IO引脚的输入模式应该为上拉输入模式。 实现代码 #include "…

nvm下载

nvm下载 1.下载nvm安装包2.安装nvm3.修改settings.txt4.安装成功5.继续配置 下载nvm之前,你最好将你电脑上的node卸载掉,直接在winx中卸载就行 1.下载nvm安装包 https://github.com/coreybutler/nvm-windows/releases 2.安装nvm 3.修改settings.txt root: E:\nvm\install\nv…

DMA方式的知识点笔记

苏泽 “弃工从研”的路上很孤独&#xff0c;于是我记下了些许笔记相伴&#xff0c;希望能够帮助到大家 目录 1. DMA基本概念 2. DMA传送过程 易错点 DMA控制器操作流程 3. DMA传送方式 这是单总线的结果 &#xff08;CPU说了算 所以不会产生于CPU的冲突&#xff09; 这…

新闻资讯整合平台:一站式满足企业信息需求

摘要&#xff1a; 面对信息爆炸的时代&#xff0c;企业如何在海量数据中快速获取有价值资讯&#xff0c;成为提升竞争力的关键。本文将探讨如何通过一站式新闻资讯整合平台&#xff0c;实现企业信息需求的全面满足&#xff0c;提升决策效率&#xff0c;同时介绍实用工具推荐&a…

Transformer中的编码器和解码器结构有什么不同?

Transformer背后的核心概念&#xff1a;注意力机制&#xff1b;编码器-解码器结构&#xff1b;多头注意力等&#xff1b; 例如&#xff1a;The cat sat on the mat&#xff1b; 1、嵌入&#xff1a; 首先&#xff0c;模型将输入序列中的每个单词嵌入到一个高维向量中表示&…

Vuforia AR篇(八)— AR塔防上篇

目录 前言一、设置Vuforia AR环境1. 添加AR Camera2. 设置目标图像 二、创建塔防游戏基础1. 导入素材2. 搭建场景3. 创建敌人4. 创建脚本 前言 在增强现实&#xff08;AR&#xff09;技术快速发展的今天&#xff0c;Vuforia作为一个强大的AR开发平台&#xff0c;为开发者提供了…

工业机床CNC设备如何上云?

工业机床CNC设备如何上云&#xff1f; 工业机床的计算机数控&#xff08;CNC&#xff09;设备实现远程监控数据上云&#xff0c;是现代制造业智能化转型的关键一环。这一过程不仅能够实时监测设备状态、优化生产流程&#xff0c;还能通过大数据分析提升生产效率与产品质量&…

数据结构--二叉树相关习题5(判断二叉树是否是完全二叉树 )

1.判断二叉树是否是完全二叉树 辨别&#xff1a; 不能使用递归或者算节点个数和高度来判断。 满二叉树可以用高度和节点来判断&#xff0c;因为是完整的。 但是完全二叉树前面是满的&#xff0c;但是最后一层是从左到右连续这种 如果仍然用这种方法的话&#xff0c;如下图…

Chromium编译指南2024 Linux篇-同步Chromium第三方库(四)

1.引言 在成功拉取Chromium源码并创建新分支后&#xff0c;我们需要进一步配置开发环境。这包括拉取必要的第三方库以及设置hooks&#xff0c;以确保我们能够顺利进行编译和开发工作。以下步骤将详细介绍如何进行这些配置。 2.拉取第三方库以及hooks Chromium 使用了大量的第…

WSL2编译使用6.6版本内核

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、有什么变化二、下载6.6内核三、开始编译1.安装环境2.开始编译 四、使用1.杀死虚拟机2.防止内核文件3.修改配置文件 总结 前言 最近出了一件不大不小的事&a…

【前端速通系列|第二篇】Vue3前置知识

文章目录 1.前言2.包管理工具npm2.1下载node.js2.2配置 npm 镜像源2.3 npm 常用命令 3.Vite构建工具4.Vue3组件化5.Vue3运行原理 1.前言 本系列文章旨在帮助大家快速上手前端开发。 2.包管理工具npm npm 是 node.js中进行 包管理 的工具. 类似于Java中的Maven。 2.1下载nod…