Machine learning 如何计算K-Means的BIC以获得最佳K

Machine learning 如何计算K-Means的BIC以获得最佳K,machine-learning,k-means,Machine Learning,K Means,我对K-Means聚类技术非常陌生。我想计算K-Means的BIC,以找到最佳K(簇数)。我在web上四处寻找python的解决方案,但除了我不确定是否正确之外,没有其他具体的示例。有什么想法吗?BIC基本上是以 BIC(theta|x, n) = -2 ln L(x|theta) + params(theta) lg n 其中,x是样本,n是样本数,theta是模型,params(theta)是估计参数数,L是与模型相关联的似然函数,因此需要概率模型来分配概率(ln L(x | theta)

我对K-Means聚类技术非常陌生。我想计算K-Means的BIC,以找到最佳K(簇数)。我在web上四处寻找python的解决方案,但除了我不确定是否正确之外,没有其他具体的示例。有什么想法吗?

BIC基本上是以

BIC(theta|x, n) = -2 ln L(x|theta) + params(theta) lg n
其中,
x
是样本,
n
是样本数,
theta
是模型,
params(theta)
是估计参数数,
L
是与模型相关联的似然函数,因此需要概率模型来分配概率(
ln L(x | theta)=ln PROD_{i=1}^np(x |θ)=SUM{i=1}^d lnp(x |θ)
)。事实上,虽然计算参数很容易(因为它是简单的K*d,其中K是K-均值和空间的d维的K),但你不能真正计算概率,因为K-均值并没有直接为你提供概率模型

另一方面,您可以实际证明()存在等效的概率方法,导致相同的代价函数。因此,即使您首先拟合非概率模型,但在拟合k-means后,您可以轻松恢复实际概率模型的解

例如,正确的python实现位于这里:(它们的
\u loglikelibility
函数是上面等式中的
ln(x |θ)

BIC基本上是一种(合理的)启发式函数,形式为

BIC(theta|x, n) = -2 ln L(x|theta) + params(theta) lg n
其中,
x
是样本,
n
是样本数,
theta
是模型,
params(theta)
是估计参数数,
L
是与模型相关联的似然函数,因此需要概率模型来分配概率(
ln L(x | theta)=ln PROD_{i=1}^np(x |θ)=SUM{i=1}^d lnp(x |θ)
)。事实上,虽然计算参数很容易(因为它是简单的K*d,其中K是K-均值和空间的d维的K),但你不能真正计算概率,因为K-均值并没有直接为你提供概率模型

另一方面,您可以实际证明()存在等效的概率方法,导致相同的代价函数。因此,即使您首先拟合非概率模型,但在拟合k-means后,您可以轻松恢复实际概率模型的解


例如,正确的python实现位于此处:(它们的
\u loglikelibility
函数是上面等式中的
ln(x |θ)

那么,您是否尝试过用python实现函数?是的。这里:那么,您尝试过用python实现函数吗?是的。这里: