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

Daw*_*n17 3 python scikit-learn

我搜索了一些关于 KMeans 和 Scikit-learn 的教程,但我无法找到适合我的案例的内容。

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

{
    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]
}
Run Code Online (Sandbox Code Playgroud)

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

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

向量值被标准化为 1 到 20 之间的范围。

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

Jin*_*les 5

导入库

from sklearn.cluster import KMeans
import numpy as np
Run Code Online (Sandbox Code Playgroud)

格式化你array of these objects的 Scikit-learn 的 KMeans 来工作

data_for_clustering = [row['vector'] for row in data]
data_for_clustering = np.array(data_for_clustering)
Run Code Online (Sandbox Code Playgroud)

进行聚类

kmeans = KMeans(n_clusters=2, random_state=0).fit(data_for_clustering)
Run Code Online (Sandbox Code Playgroud)

获取标签

kmeans.labels_
Run Code Online (Sandbox Code Playgroud)