11

我现在正在使用 scikit learn 和 python 几天,尤其是 KernelDensity。拟合模型后,我想评估新点的概率。方法 score() 是为此而设计的,但显然不起作用,因为当我将数组作为条目 1 数字是输出时。我使用 score_samples() 但它很慢。

我认为这个分数不起作用,但我没有改进它的技能。如果您有任何想法,请告诉我

4

2 回答 2

12

score() 使用 score_samples() 如下:

return np.sum(self.score_samples(X))

所以,这就是为什么你应该在你的情况下使用 score_samples() 。

于 2014-11-26T12:23:46.383 回答
9

没有任何代码,这有点难以分辨,但是:

我们假设您要评估的点保存在数组中X,并且您有一个内核密度估计kde,因此您调用:

logprobX = kde.score_samples(X)

但要小心,这些是对数的!所以你还需要做:

probX = np.exp(logprobX) 

这些值适合您的(最终计算的)直方图。

运行这些行的时间取决于 X 的长度。在我的机器上,计算 7500 点非常快。

于 2017-07-26T08:05:41.340 回答