【问题标题】:Is there a way to get intracluster distances for k-means in Python有没有办法在 Python 中获得 k-means 的集群内距离
【发布时间】:2019-10-14 16:31:25
【问题描述】:

您好,我是 Python 新手,并试图在下面弄清楚这些。非常感谢任何帮助。谢谢

  1. 如何使用 python 在 kmeans 中获取集群内和集群间距离?
  2. 如何验证集群的质量?有什么措施可以检查形成的集群的好坏?
  3. 有没有办法找出哪些因素/变量是影响聚类的最重要特征 - 特征提取/选择

我对上面的问题 1 进行了尝试,这是正确的方法吗??

dists = euclidean_distances(km.cluster_centers_)
tri_dists = dists[np.triu_indices(4, 1)]
max_dist, avg_dist, min_dist = tri_dists.max(), tri_dists.mean(), tri_dists.min()

print(max_dist, avg_dist, min_dist)

【问题讨论】:

    标签: python scikit-learn cluster-analysis


    【解决方案1】:

    避免将多个问题合二为一。

    1. K-means 不会计算所有这些距离。否则它将需要 O(n²) 时间和内存,这会慢得多!它使用称为 Koenig-Huygens 定理的特殊方差特性(它不只优化除平方和之外的其他距离的另一个原因)。
    2. 是的,文献中提出了超过 20 个,甚至可能是 100 个这样的质量测量方法。但这并没有让选择“最佳”聚类变得更容易:最终,聚类对于用户来说是主观的
    3. 是的,您可以应用各种技术,从方差分析到因子分析再到随机森林。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-22
      • 2019-06-01
      • 2018-08-14
      • 2017-10-13
      • 2012-04-09
      • 2017-08-10
      • 2019-05-07
      • 2018-03-04
      相关资源
      最近更新 更多