我有一个数据框架,我使用sklearn KMeans函数进行了4个群集群集:
km = KMeans(n_clusters=4, init='random', n_init=10, max_iter=10,
tol=1e-4, random_state=10, algorithm='full', )
km.fit(df)
因此,我有4个集群,但当我这样做时:
km.inertia_
我只得到一个值:
1732.350
然而,根据惯性的定义,惯性是样本距离最近的簇中心的平方距离的总和。所以必须有4个惯性值,不是1,还是我错了
Tags:
属性
interia
是一个数字,它是样本到最近的聚类中心的平方距离的总和惯性被用作在几次运行中选择最佳俱乐部化的标准。为了能够找到最好的一个,所有聚类都应该以某种方式排序。这是通过为它们中的每一个指定一个称为惯性的标量值来实现的,这样它们就可以很容易地相互比较。此值不打算以任何其他方式使用
下面是在矩阵密集的情况下计算其值的当前实现(源代码可用here):
有一个循环,它贯穿所有集群并累加总和,因此它不提供一种方法来分别获取每个集群的惯性值。如果您需要每个集群的惯性,那么您必须自己实现它
相关问题 更多 >
编程相关推荐