參考url:
https://jakevdp.github.io/PythonDataScienceHandbook/05.13-kernel-density-estimation.html
密度評估器是一種利用D維數據集生成D維概率分布估計的算法,GMM算法用不同高斯分布的加權匯總來表示概率分布估計。核密度估計(kernel density estimation,KDE)算法將高斯混合理念擴展到了邏輯極限(logical extreme),它通過對每個點生成高斯分布的混合成分,獲得本質上是無參數的密度評估器。
1、KDE的由來:直方圖
密度估計評估器是一種尋找數據集生成概率分布模型的算法。
一維數據的密度估計——直方圖,是一個簡單的密度評估器,直方圖將數據分成若干區間,統計落入每個區間內的點的數量,然后用直觀的方式將結果可視化。





2、核密度估計的實際應用
核密度估計的自由參數是核類型(kernel)參數,他可以指定每個點核密度分布的形狀。
核帶寬(kernel bandwidth)參數控制每個點的核的大小
核密度估計算法在sklearn.neighbors.KernelDensity評估器中實現,借助六個核中的任意一個核、二三十個距離量度就可以處理具有多個維度的KDE。
由於KDE計算量非常大,因此Scikit-Learn評估器底層使用了一種基於樹的算法,可以利用atol(絕對容錯)和rtol(相對容錯)參數來平衡計算時間與准確性,可以用Scikit-Learn的標准交叉檢驗工具來確定自由參數核帶寬。

通過交叉檢驗選擇帶寬
在KDE中,帶寬的選擇不僅對找到合適的密度估計非常重要,也是在密度估計中控制偏差-方差平衡的關鍵:
(1)帶寬過窄將導致估計呈現高方差(即過擬合),而且每個點的出現或缺失都會引起很大的不同
(2)帶寬過寬將導致估計呈現高偏差(即欠擬合),而且帶寬較大的核還會破壞數據結構
機器學習中超參數的調優通常都是通過交叉檢驗完成的。


