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

什么是 KDE?

什么是 KDE?

      • KDE 的作用是什么?
      • KDE 是怎么工作的?
      • 如何用 Python 绘制 KDE?(代码示例)
      • 结果解读
      • 小结

KDE 是 Kernel Density Estimation 的缩写,中文叫作“核密度估计”。它是一种用来估计数据分布的方法。简单来说,KDE 可以帮助我们画出一条平滑的曲线,告诉我们数据在哪里比较多,在哪里比较少。

比如,如果我们统计班级同学的身高分布,KDE 能用一条漂亮的曲线直观地展示出哪个范围的身高人数最多。


KDE 的作用是什么?

  1. 看分布:KDE 能帮我们直观了解数据的分布规律,比用柱状图更平滑。
  2. 找高峰:通过 KDE 曲线,我们可以轻松找到数据的集中区域(高峰)。
  3. 对比数据集:如果有多个数据集,KDE 能让我们快速对比它们的分布。

KDE 是怎么工作的?

KDE 的原理是:

  1. 每一个数据点周围都会生成一个小“山丘”。
  2. 把所有的“山丘”加起来,得到一条平滑的曲线。
  3. 山丘的宽度由一个叫 “核宽度” 的参数控制,宽度大时曲线更平滑,宽度小时曲线更贴近数据。

如何用 Python 绘制 KDE?(代码示例)

下面用一个简单的例子展示如何画 KDE 图:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# 生成模拟数据
np.random.seed(42)
data = pd.DataFrame({
    "Group1": np.random.normal(0, 1, 1000),  # 第一组数据
    "Group2": np.random.normal(1, 1, 1000),  # 第二组数据
    "Group3": np.random.normal(0.5, 1, 1000),  # 第三组数据
    "Group4": np.random.normal(-1, 1, 1000),  # 第四组数据
})

# 绘制 KDE 子图
fig, axes = plt.subplots(2, 2, figsize=(10, 6), sharex=True, sharey=True)
for ax, (col_name, values) in zip(axes.ravel(), data.items()):
    values.plot.kde(ax=ax, title=col_name, ylim=(0, 0.5))

# 设置整体布局
plt.tight_layout()
plt.show()

结果解读

运行代码后,你会看到一个 2x2 的子图布局,每一张子图展示了一个数据组的 KDE 曲线。你可以从中看到:

  • 曲线的高峰代表数据集中的值最多的地方。
  • 曲线的宽度反映了数据的分布范围。

小结

KDE 是一种很方便的工具,它可以帮助我们快速了解数据的分布规律。它适用于:

  • 想要观察数据集中趋势时。
  • 希望对比多个数据分布情况时。

http://www.kler.cn/a/420097.html

相关文章:

  • 华为HarmonyOS 让应用快速拥有账号能力 -- 2 获取用户头像昵称
  • WPF+LibVLC开发播放器-LibVLC在C#中的使用
  • C++可变参数模板
  • 53 基于单片机的8路抢答器加记分
  • Dify+Docker
  • 什么语言适合做 Serverless 开发?
  • numpy.float8不存在;Python中,实现16位浮点数
  • 种花问题算法
  • 运维工作常用Shell脚本(Commonly Used Shell Scripts for Operation and Maintenance Work)
  • 深入解析 Python 异步编程中的 `gather`、`as_completed` 和 `wait`
  • SQL注入--基本概念
  • 01-标准库开发-STM32定时器
  • 为什么在服务器上设置 fish 为默认 shell, vscode remote ssh 默认还是 bash?
  • flink学习(13)—— 重试机制和维表join
  • 在 uniapp 项目中使用 Iconify 字体图标库
  • 《Python PDF 格式转换全攻略》
  • Linux 进程管理详解
  • 张量并行和流水线并行在Transformer中的具体部位
  • 25.4K Star 高效内存数据存储!特别好用的Redis 和 Memcached 替代品:Dragonfly!
  • redisson-spring-data与Spring-Data-Redis的版本关系问题
  • 性能监控系统Prometheus、Node-exporter与Grafana部署详解搭建
  • 黑马程序员Java项目实战《苍穹外卖》Day03
  • Xilinx PCIe高速接口入门实战(一)
  • 软件保护:从用户角度出发的安全需求与体验
  • C++之 String 类的模拟实现
  • k8s api对象,CRD