我试图了解 scikit-learn 中的 KernelDensity 类是如何工作的。考虑以下两种情况,它们从两个不同的数组 (a) 构建内核。我想知道为什么在这两种情况下对数组 b 的评分结果是相同的?来自 10 个相同点的内核不应该与来自 2 个点的内核不同吗?10 个点中的一个应该表示更多的密度。那么,为什么两种情况下最终的评分结果是一样的呢?
案例一:
a = np.array([[1],[1],[1],[1],[1],[1],[1],[1],[1],[1]])
kde = KernelDensity(bandwidth=0.1)
kde.fit(a)
b = np.array([[1]])
log_dens = kde.score_samples(b)
print('Probability is: {}'.format(np.exp(log_dens)))
概率是:[3.9894228]
案例B:
a = np.array([[1],[1]])
kde = KernelDensity(bandwidth=0.1)
kde.fit(a)
b = np.array([[1]])
log_dens = kde.score_samples(b)
print('Probability is: {}'.format(np.exp(log_dens)))
概率是:[3.9894228]