内核密度分数VS score_samples python scikit

Posted

技术标签:

【中文标题】内核密度分数VS score_samples python scikit【英文标题】:kernel density score VS score_samples python scikit 【发布时间】:2014-09-01 03:21:55 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

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 点非常快。

【讨论】:

以上是关于内核密度分数VS score_samples python scikit的主要内容,如果未能解决你的问题,请参考以下文章

如何从内核密度估计中获取内核(最好是 sklearn.neighbors)?

如何使用 D3.js 实现 R 内核密度估计图?

计算Spark DataFrame中每列的内核密度

如何在 pyspark 数据框列上拟合内核密度估计并将其用于创建具有估计的新列

R语言回归模型残差可视化实战:残差拟合曲线图(residual vs. fitted plot)QQ图残差密度图

微观VS宏观VS加权F1分数[关闭]