我正在尝试从使用 scikit-learn 模块计算的 KDE 计算 PDF 估计值。我已经看到了 2 种评分变体,我都在尝试:下面的语句 A 和 B。
语句 A 导致以下错误:
AttributeError:“KernelDensity”对象没有属性“tree_”
语句 B 导致以下错误:
ValueError:查询数据维度必须匹配训练数据维度
似乎是一个愚蠢的错误,但我无法弄清楚。请帮忙。代码如下...
from sklearn.neighbors import KernelDensity
import numpy
# d is my 1-D array data
xgrid = numpy.linspace(d.min(), d.max(), 1000)
density = KernelDensity(kernel='gaussian', bandwidth=0.08804).fit(d)
# statement A
density_score = KernelDensity(kernel='gaussian', bandwidth=0.08804).score_samples(xgrid)
# statement B
density_score = density.score_samples(xgrid)
density_score = numpy.exp(density_score)
如果有帮助,我正在使用 0.15.2 版本的 scikit-learn。我已经用 scipy.stats.gaussian_kde 成功地尝试过了,所以数据没有问题。