Вернуться на страницу brain2net: https://brain2net.ru/post/klasterizacziya-k-srednih/

Кластеризация k-средних

In [1]:
from sklearn.cluster import KMeans
In [2]:
from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
# генерируем синтетические двумерные данные
X, y = make_blobs(random_state=1)
In [3]:
# строим модель кластеризации
# Создается экземпляр класса KMeans и задается количество выделяемых кластеров.
kmeans = KMeans(n_clusters=3)
# Методу fit и передаются данные в качестве аргумента.
kmeans.fit(X)
Out[3]:
KMeans(algorithm='auto', copy_x=True, init='k-means++', max_iter=300,
       n_clusters=3, n_init=10, n_jobs=None, precompute_distances='auto',
       random_state=None, tol=0.0001, verbose=0)
In [4]:
# Во время работы алгоритма каждой точке обучающих данных X присваивается метка кластера. Атрибут kmeans.labels_
print("Принадлежность к кластерам:\n{}".format(kmeans.labels_))
Принадлежность к кластерам:
[1 2 2 2 0 0 0 2 1 1 2 2 0 1 0 0 0 1 2 2 0 2 0 1 2 0 0 1 1 0 1 1 0 1 2 0 2
 2 2 0 0 2 1 2 2 0 1 1 1 1 2 0 0 0 1 0 2 2 1 1 2 0 0 2 2 0 1 0 1 2 2 2 0 1
 1 2 0 0 1 2 1 2 2 0 1 1 1 1 2 1 0 1 1 2 2 0 0 1 0 1]
In [5]:
# Запуск метода predict на обучающем наборе возвращает тот
# же самый результат, что содержится в атрибуте labels_
print(kmeans.predict(X))
[1 2 2 2 0 0 0 2 1 1 2 2 0 1 0 0 0 1 2 2 0 2 0 1 2 0 0 1 1 0 1 1 0 1 2 0 2
 2 2 0 0 2 1 2 2 0 1 1 1 1 2 0 0 0 1 0 2 2 1 1 2 0 0 2 2 0 1 0 1 2 2 2 0 1
 1 2 0 0 1 2 1 2 2 0 1 1 1 1 2 1 0 1 1 2 2 0 0 1 0 1]
In [7]:
# Центры кластеров
kmeans.cluster_centers_
Out[7]:
array([[ -6.58196786,  -8.17239339],
       [ -1.4710815 ,   4.33721882],
       [-10.04935243,  -3.85954095]])

Вернуться на страницу brain2net: https://brain2net.ru/post/klasterizacziya-k-srednih/

In [ ]: