K-средства на 3D матрице - PullRequest
1 голос
/ 26 марта 2019

В настоящее время я изучаю k-means и хотел попробовать его на 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: найден массив с dim 3. Ожидается оценщик <= 2. </p>

Любое предложение, где я иду не так, приветствуется.

1 Ответ

3 голосов
/ 26 марта 2019

Как указано в документации, метод KMeans 'fit ожидает:

X: матричная или разреженная матрица, shape = (n_samples, n_features)

т.е. массив в форме 2D, где каждая строка представляет собой образец, а столбцы представляют собой элементы каждого образца. Следовательно, он не может обрабатывать трехмерные точки данных.

...