核密度估計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)=nh1?i=1n?K(hx?xi??)
其中:

  • 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.pswp.cn/web/44565.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/44565.shtml
英文地址,請注明出處:http://en.pswp.cn/web/44565.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

RDNet實戰:使用RDNet實現圖像分類任務(二)

文章目錄 訓練部分導入項目使用的庫設置隨機因子設置全局參數圖像預處理與增強讀取數據設置Loss設置模型設置優化器和學習率調整策略設置混合精度,DP多卡,EMA定義訓練和驗證函數訓練函數驗證函數調用訓練和驗證方法 運行以及結果查看測試完整的代碼 在上…

ubuntu顯卡驅動重啟后失效的解決辦法

寫在前方:ubuntu系統,顯卡重啟后驅動失效,顯卡不可用。網上沖浪之后得以有效解決,以下是解決方案 查看顯卡nvidia-smi;驅動失效消息: (base) rootnode:~# nvidia-smi NVIDIA-SMI has failed because it c…

AI大模型走進汽車車機,智駕將是未來

車機里的AI大模型在汽車行業中的應用越來越廣泛,主要體現在智能座艙和自動駕駛系統的深度融合上。通過將AI大模型應用于車機系統,可以實現更高智能化的人車交互體驗。AI大模型作為人工智能發展的核心引擎,正在成為汽車智能化發展的關鍵之一。…

基于顏色模型和邊緣檢測的火焰識別FPGA實現,包含testbench和matlab驗證程序

目錄 1.算法運行效果圖預覽 2.算法運行軟件版本 3.部分核心程序 4.算法理論概述 5.算法完整程序工程 1.算法運行效果圖預覽 (完整程序運行后無水印) 將FPGA仿真結果導入到matlab顯示結果: 測試樣本1 測試樣本2 測試樣本3 2.算法運行軟件版本 vivado2019.2 …

MySQL配置數據庫的連接命令

MySQL配置數據庫連接命令 在MySQL中,配置數據庫連接的命令涉及創建用戶、授予權限、配置主從復制等多個方面。以下是常用的命令及其用途: 創建用戶 創建一個新的數據庫用戶并為其設置密碼: CREATE USER usernamehost IDENTIFIED BY passwo…

mysql中的存儲過程

存儲過程的作用:有助于提高應用程序的性能。存儲過程可以不必發送多個冗長的SQL語句 廢話不說多,直接實操 ##實現num的相加 delimiter $$ CREATE PROCEDURE test1 () begindeclare num int default 0; -- 聲明變量,賦默認值為0select num20;end $$ delimiter ; …

計算機網絡高頻面試題

從輸入URL到展現頁面的全過程: 用戶在瀏覽器中輸入URL。瀏覽器解析URL,確定協議、主機名和路徑。瀏覽器查找本地DNS緩存,如果沒有找到,向DNS服務器發起查詢請求。DNS服務器解析主機名,返回IP地址。瀏覽器使用IP地址建立…

Kafka配置SASL認證

Kafka加密 Kafka認證方式 在本博客中我們使用SASL/PLAIN的方式來進行Kafka加密 環境準備 Kafka集群環境 請參考之前的Kafka集群搭建 kafka-broker1kafka-broker2 集群配置SASL/PLAIN認證 用戶校驗 修改server.properties 讓其支持Kafka的認證(每一個broker節點都需要修改這…

jail內部ubuntu apt升級失敗問題解決

在FreeBSD jail 里安裝啟動Ubuntu jammy系統,每次裝好執行jexec ubjammy sh進入Ubuntu系統后,執行apt update報錯。 這個問題困惑了好久,突然有一天仔細去看報錯信息,查看了(man 5 apt.conf) ,才搞定問題。簡單來說就是…

MySQL 數據庫(基礎)- 函數

MySQL 數據庫(基礎)- 函數 介紹 函數 是指一段可以被另一段程序調用的程序或代碼。也意味著,這一段程序或代碼在 MySQL 中已經給我們提供了,我們需要做的就是在合適的業務場景調用對應的函數,完成對應的業務需求即可…

python的簡單爬取

需要的第三方模塊 requests winr打開命令行輸入cmd 簡單爬取的基本格式(爬取百度logo為例) import requests url"http://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png" resprequests.get(url)#回應 #保存到本地 with open(&…

中國物流信息軟件系統(WMS等)行業概覽,2027年將達到235.1億元

導語 大家好,我是社長,老K。專注分享智能制造和智能倉儲物流等內容。 新書《智能物流系統構成與技術實踐》人俱樂部 完整版文件和更多學習資料,請球友到知識星球【智能倉儲物流技術研習社】自行下載 這份文件是《2023年中國物流信息軟件系統行…

【Python】下載與安裝

目錄 一、 下載安裝Python 1. 配置環境變量 2. 檢查是否配置成功 一、 下載安裝Python 在我上傳的資源可以免費下載!!! https://download.csdn.net/download/m0_67830223/89536665?spm1001.2014.3001.5501https://download.csdn.net/dow…

淺談后置處理器之JSON提取器

淺談后置處理器之JSON提取器 JMeter 的 JSON 提取器(JSON Extractor)是一個強大的后置處理器,它允許用戶從HTTP響應、數據庫查詢或其他類型的響應中提取JSON數據,并將這些數據存儲為變量,以便在后續的請求中重用。這對…

Mojo AI編程語言(三)數據結構:高效數據處理

目錄 1. Mojo AI編程語言簡介 2. 數據結構在數據處理中的重要性 3. Mojo AI中的基礎數據結構 3.1 數組 3.2 列表 3.3 字典 4. 高效數據結構的實現與優化 4.1 哈希表 4.2 樹結構 4.3 圖結構 5. 高效數據處理技術 5.1 并行處理 5.2 內存優化 5.3 數據壓縮 6. 實戰…

【Redis】哨兵(sentinel)

文章目錄 一、哨兵是什么?二、 哨兵sentinel文件參數三、 模仿主機redis宕機四、哨兵運行流程和選舉原理SDOWN主觀下線ODOWN客觀下線 五、 使用建議 以下是本篇文章正文內容 一、哨兵是什么? 哨兵巡查監控后臺master主機是否故障,如果故障了…

js項目生產環境中移除 console

1、terser-webpack-plugin webpack 構建的項目中安裝使用 安裝: npm install terser-webpack-plugin --save-dev 配置 在webpack.config.js文件中 new TerserPlugin({terserOptions: {output: {comments: false, // 去除注釋},warnings: false, // 去除黃色警告,co…

nx上darknet的使用-目標檢測-自定義訓練與制作預訓練模型

目錄 1 訓練yolov4-tiny 1.1 文件準備 1.1.1 Annotations 1.1.2 JPEGImages 1.1.3 labels 1.1.4 trained_models 1.1.5 classes.name 1.1.6 create_labels_txt.py 1.1.7 custom_training.data 1.1.8 get_labels.py 1.1.9 get_train_val.py 1.1.10 train…

python制作甘特圖的基本知識(附Demo)

目錄 前言1. matplotlib2. plotly 前言 甘特圖是一種常見的項目管理工具,用于表示項目任務的時間進度 直觀地看到項目的各個任務在時間上的分布和進度 常用的繪制甘特圖的工具是 matplotlib 和 plotly 主要以Demo的形式展示 1. matplotlib 功能強大的繪圖庫&a…

內網對抗-基石框架篇單域架構域內應用控制成員組成用戶策略信息收集環境搭建

知識點: 1、基石框架篇-單域架構-權限控制-用戶和網絡 2、基石框架篇-單域架構-環境搭建-準備和加入 3、基石框架篇-單域架構-信息收集-手工和工具1、工作組(局域網) 將不同的計算機按照功能分別列入不同的工作組。想要訪問某個部門的資源,只要在“網絡…