Интерпретация результатов K-средних для cluster_centers_ - PullRequest
0 голосов
/ 13 апреля 2020

Мне трудно интерпретировать результаты вывода массива cluster_centers_.

Рассмотрим следующее MWE:

from sklearn.cluster import KMeans
from sklearn.datasets import load_iris
import numpy as np

# Load the data
iris = load_iris()
X, y = iris.data, iris.target

# shuffle the data
shuffle = np.random.permutation(np.arange(X.shape[0]))
X = X[shuffle]

# scale X
X = (X - X.mean()) / X.std()

# plot K-means centroids
km = KMeans(n_clusters = 2, n_init = 10)  # establish the model

# fit the data
km.fit(X);

# km centers
km.cluster_centers_
array([[ 1.43706001, -0.29278015,  0.75703227, -0.89603057],
       [ 0.78079175, -0.04797174, -0.96467783, -1.60799713]])

В приведенном выше массиве неясно, мне, как я использую эти значения, чтобы идентифицировать центр кластера. Я сказал K-Means дать мне 2 кластера, но он возвращает мне 8 значений, но они не могут быть координатами x, y для всех 4 объектов.

Если я строю график 1.43706001, -0.29278015; это имеет интуитивный смысл, это кластер прямо в середине предсказанного кластера.

Example Cluster Location

Так что, если это так, и мой второй кластер 0.78079175, -0.04797174, для чего значения в столбцах 2 и 3?

1 Ответ

2 голосов
/ 13 апреля 2020

Из документации cluster_centers_: ndarray формы (n_clusters, n_features)

База данных iris имеет 4 функции (X.shape = (150,4)), вы хотите, чтобы Kmeans получил два центроида в 4-мерном пространстве пространственных объектов. cluster_centers_ делает именно это, каждая запись списка соответствует координатам центроида в R ^ 4.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...