3D矩阵上的K均值

时间:2019-03-26 11:54:49

标签: python machine-learning scikit-learn k-means

我目前正在学习k均值,并想在3D矩阵上进行尝试,this是传递2D矩阵的链接。

from sklearn.cluster import KMeans
import numpy as np
X = np.array([[1, 2], [1, 4], [1, 0],
            [10, 2], [10, 4], [10, 0]])
kmeans = KMeans(n_clusters=2, random_state=0).fit(X)
kmeans.labels_
array([1, 1, 1, 0, 0, 0], dtype=int32)
kmeans.predict([[0, 0], [12, 3]])
array([1, 0], dtype=int32)
kmeans.cluster_centers_
array([[10.,  2.],
       [ 1.,  2.]])

但是当尝试但尝试

x = [[[10, 20, 30], [40, 50, 60]], [[1, 2, 3], [4, 5, 6]]]
kmeans = KMeans(n_clusters=2, random_state=0).fit(x)

错误为

  

ValueError:找到的数组为暗3。估计值应为<= 2。

对我要去哪里的任何建议表示赞赏。

1 个答案:

答案 0 :(得分:3)

如文档中所述,期望使用KMeans'fit方法:

  

X:类数组或稀疏矩阵, shape =(n_samples,n_features)

即2D形状的数组,其中每一行是一个样本,而列是每个样本的特征。因此,它无法处理3D数据点。