下面的两个图表传达的信息大致相同。
左边的那个是直方图,其中Y轴表示频率(即,我们看到与每个箱相关联的范围内的值的频率)。
右边的那个是密度(KDE估计)。 Y轴代表密度(积分应加起来一个)。
我通常更喜欢密度图(您可以调整,但Y轴通常难以解释。
我知道KDE估计将返回一个加起来为1的密度,假设变量的域跨度从-Inf到Inf,但有没有办法将由KDE估计得到的PDF映射到频率(例如放大有频率的值)?
这只是轴的“缩放”问题吗?或者还有其他相关内容吗?
答案 0 :(得分:1)
您必须先计算密度点,然后绘图。阅读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()