#python #machine-learning #scikit-learn #k-means
#python #машинное обучение #scikit-учиться #k-средства
Вопрос:
В настоящее время я изучаю k-means и хотел попробовать его на 3D матрице, это ссылка, по которой я передаю 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)
ошибка в виде
Ошибка значения: найден массив с dim 3. Ожидаемая оценка <= 2.
Приветствуется любое предложение, в котором я ошибаюсь.
Ответ №1:
Как указано в документах, метод KMeans
‘ fit
ожидает:
X : массивоподобная или разреженная матрица, shape=(n_samples, n_features)
то есть массив 2D-формы, где каждая строка является образцом, а столбцы являются элементами каждого образца. Следовательно, он не может обрабатывать 3D точки данных.