【问题标题】:kernel density score VS score_samples python scikit内核密度分数VS score_samples python scikit
【发布时间】:2023-04-05 21:38:01
【问题描述】:

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

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

【问题讨论】:

    标签: python scikit-learn kernel-density


    【解决方案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 点非常快。

    【讨论】:

      猜你喜欢
      • 2016-07-19
      • 1970-01-01
      • 2015-11-13
      • 2017-09-05
      • 2016-09-07
      • 2017-12-07
      • 2019-04-14
      • 2018-01-17
      • 2014-03-15
      相关资源
      最近更新 更多