【问题标题】:how can I pass some nodes as init in sklearn.kmeans(n_clusters,init,....) in python如何在 python 的 sklearn.kmeans(n_clusters,init,....) 中将一些节点作为 init 传递
【发布时间】:2022-01-08 17:40:10
【问题描述】:

如何将 2 个节点作为质心传递给 sklearn.kmeans(n_clusters,init,....) 而不是随机或 kmeans++? 算法['kmeans'] = KMeans(n_clusters=k_clusters,init='random', n_init=200)

【问题讨论】:

    标签: python scikit-learn k-means adjacency-matrix complex-networks


    【解决方案1】:

    sklearn 还允许用户输入形状为(n_clusters, n_features) 的形心。

    文档:https://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html

    对于小于n_clusters,你可以使用随机初始化并通过它。

    【讨论】:

    • 我知道,但我有一个名为“zarchy karate club”的数据集,它表示一个图表。默认情况下,这些点不在空间中。有一些 kmeans 集群的实现,比如learndatasci.com/tutorials/… 上的那个,但我想知道如何将一些节点作为质心传递给 sklearn.cluster.kmeans?!我不知道 (n_clusters, n_features) 在这种情况下是什么意思?!
    • 那就没那么简单了。您必须将它们发送到 networkx 绘图函数,获取它们的位置,然后选择质心,然后传递。
    • 至于您对n_clusters, n_features 的疑问,请考虑阅读一些有关kmeans 的信息——至少从我在答案中发布的文档中阅读。
    • 我可以为此目的使用 kmeans.transform 吗?它会更改数据以更改位置吗?
    • 从技术上讲,在你使用transform之前,你需要fit。否则它使用未经训练的随机质心。
    猜你喜欢
    • 1970-01-01
    • 2021-10-20
    • 1970-01-01
    • 1970-01-01
    • 2015-06-20
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多