Емкостная кластеризация Kmeans в пакете Python sklearn - PullRequest
0 голосов
/ 04 декабря 2018

Есть ли способ ограничить количество точек, которые kmeans вкладывают в кластер?Я использую kmeans в пакете sklearn в Python и не хочу, чтобы kmeans ставил столько точек, сколько он хочет, в кластере.У меня максимальная емкость, и я не хочу, чтобы каждый кластер имел больше точек, чем емкость этого кластера.Я знаю, что есть тема для емкостного kmeans, но мне было интересно, могу ли я использовать пакет sklearn, или мне нужно написать свою собственную функцию kmeans, чтобы я мог также рассмотреть возможности?Ниже приведен мой исходный код kmeans, но я хочу посмотреть, как сделать так, чтобы кластеры имели количество точек, меньшее или равное [5,5,6,8].

numT = 50

from sklearn.cluster import KMeans
import random 
import numpy as np

coor = np.zeros((numT,2),dtype='f')     # coordinates 

for i in range(numT):
    coor[i,:] = round(random.uniform(-500,500),1) 

kmeans = KMeans(n_clusters=4, random_state=0).fit(coor)
...