我现在使用scikit learn和python几天,特别是KernelDensity。 一旦模型拟合,我想评估新点的概率。 方法得分()是为此而做的,但显然不起作用,因为当我输入数组时,条目1数字是输出。 我使用score_samples()但它很慢。
我认为这个分数不起作用,但我没有技能可以帮助它。如果您有任何想法,请告诉我
答案 0 :(得分:6)
score()使用score_samples(),如下所示:
return np.sum(self.score_samples(X))
所以,这就是为什么你应该在你的情况下使用score_samples()。
答案 1 :(得分:2)
在没有任何代码的情况下,它有点难以辨别,但是:
我们假设您要评估的点数保存在数组X
中,并且您有一个内核密度估算值kde
,因此请致电:
logprobX = kde.score_samples(X)
但要小心,这些是对数的! 所以你还需要这样做:
probX = np.exp(logprobX)
这些值适合您的(最终计算的)直方图。
运行这些线的时间取决于X的长度。在我的机器上,计算7500分的速度非常快。