使用Scikit学习KMeans对多维数组进行聚类

时间:2019-10-17 06:04:50

标签: python scikit-learn

我已经通过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 个答案:

答案 0 :(得分:3)

导入lib

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_