K-средства (или другие методы кластеризации) с лимитом баллов? - PullRequest
0 голосов
/ 28 февраля 2020

Я занимаюсь разработкой кода кластеризации с помощью k-средних и у меня возникает следующий вопрос: можно ли определить предельные значения для каждого кластера с помощью k-средних или другого алгоритма?

Лучше объяснить случай в Код ниже у меня есть два предопределенных центроида и 12 очков. После выполнения k-средних у нас есть 8 очков на центроиде 0 и 4 балла на центроиде 1.

from sklearn.cluster import KMeans
import numpy as np

#Centroids:
refs = [[-22.87042313, -43.33995681], [-22.91265768, -43.23596109]]
kmeans_model = KMeans(n_clusters=len(refs), random_state=0).fit(refs)
ref_labels = kmeans_model.labels_
centroids = kmeans_model.cluster_centers_

#Points:
points = [[-22.8595871, -43.2385504], [-23.0144844, -43.4727984], [-22.8727929, -43.4082954],
          [-22.9478637, -43.3652225], [-22.8213579, -43.1740529], [-22.9592171, -43.3508173],
          [-22.8236928, -43.3203929], [-22.9027656, -43.3541462], [-22.8749724, -43.5034297],
          [-22.8456399, -43.2840653], [-22.8893855, -43.2424886], [-22.8499984, -43.2564374]]

#Clustering:
kmeans_model.predict(points)
Output: array([1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1], dtype=int32)

Могу ли я определить, сколько очков может получить каждый центроид?

Например:

центроид 0 = 4 балла

центроид 1 = 3 балла

Запуск k-средних ...

Вывод, например: [1,0,0,0,1,0,NA,NA,NA,NA,1,NA]

...