2

下面的两个图传达了大致相同的信息。

  • 左边的一个是直方图,其中 Y 轴代表频率(即我们看到与每个 bin 相关的范围内的值的频率)。

  • 右边是密度(KDE 估计)。Y 轴表示密度(积分应该加起来为 1)。

我通常更喜欢密度图(您可以调整,但 Y 轴通常更难解释。

我知道KDE估计将返回一个密度加起来为1,假设变量的域从-Inf跨越到Inf,但是有没有办法将KDE估计产生的PDF映射到频率(例如,将值放大到有频率)?

这只是轴的“缩放”问题吗?或者还有什么其他的关系吗?

    密度与频率

4

1 回答 1

2

您必须先计算密度点,然后再进行绘图。阅读http://scikit-learn.org/stable/modules/density.html。一些代码:

from sklearn.neighbors.kde import KernelDensity
import numpy as np
import matplotlib.pyplot as plt 

# This X is your data for the histogram
X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
X = X.reshape(-1, 1)

kde = KernelDensity(kernel='gaussian', bandwidth=1).fit(X)
x = np.linspace(X.min(), X.max(), 100).reshape(-1, 1)

density = np.exp(kde.score_samples(x))

plt.plot(x, density)
plt.show()

在此处输入图像描述

于 2014-09-05T12:02:28.773 回答