使用 Scikit-learn KMeans 对多维数组进行聚类

Posted

技术标签:

【中文标题】使用 Scikit-learn KMeans 对多维数组进行聚类【英文标题】:Using Scikit-learn KMeans to cluster multi-dimensional arrays 【发布时间】:2020-02-13 23:30:05 【问题描述】:

我已经搜索了一些关于使用 Scikit-learn 的 KMeans 的教程,但我找不到特定于我的案例的内容。

我有一个由多个对象组成的数组,格式为


    name: 'Bob',
    vector: [14,12,15,10,16,16,7,15,7,4,16,13,4,16,13,17,13,13,10,8,14,17,10,16,6,14,16,13,15,17,12,7,14,13,15,10]

所以,我有一个这些对象的数组[ ..., ..., ... ]

我想使用这些对象的 vector 字段来使用 KMeans 来获取相似项目的集群。

向量值被归一化到 1 到 20 之间。

任何帮助都会很棒。谢谢。

【问题讨论】:

我不明白你的问题。 【参考方案1】:

导入库

from sklearn.cluster import KMeans
import numpy as np

格式化您的 array of these objects 以便 Scikit-learn 的 KMeans 工作

data_for_clustering = [row['vector'] for row in data]
data_for_clustering = np.array(data_for_clustering)

做聚类

kmeans = KMeans(n_clusters=2, random_state=0).fit(data_for_clustering)

获取标签

kmeans.labels_

【讨论】:

以上是关于使用 Scikit-learn KMeans 对多维数组进行聚类的主要内容,如果未能解决你的问题,请参考以下文章

使用 scikit-learn 进行聚类

使用 Scikit-learn KMeans 对多维数组进行聚类

scikit-learn 中的 minibatch kmeans 是不是通过使用部分拟合进行增量学习?

使用 GridSearchCV scikit-learn 在管道中的 KMeans

我如何分发小批量 kmeans(scikit-learn)的处理?

我可以使用任何特征选择方法来对 Scikit-learn 中的 KMeans 等任务进行聚类吗?