Поиск оптимального значения of K. K-Means Clustering

Я пишу кластеризацию K-Means Clustering. Не могли бы вы рассказать мне, как найти «Нахождение оптимального значения K». Ниже приведен код, который я написал. Но он не правильно считает.

def mean_distances(k, X):
"""
Arguments:

k -- int, number of clusters
X -- np.array, matrix of input features

Returns:

Array of shape (k, ), containing mean of sum distances 
    from centroid to each point in the cluster for k clusters
"""

### START CODE HERE ###

clusters, final_centrs = KMeans(X, k).final_centroids()
dist = []
print(clusters[1])
for i in range(k):
    d =  np.sum(np.linalg.norm((clusters[i] - final_centrs[i])**2))
    dist.append(d)
    dist
return dist
 
### END CODE HERE ###

Ответы (1 шт):

Автор решения: passant

Очень странно, как вы "пишете" кластеризацию K-Means Clustering (на самом деле, конечно, используете готовую программу из библиотеки, написанную другими, ну да ладно) и не удосужились хоть чуть чуть ознакомиться с теорией. Тем более странно, что вы не дали себе труда набрать "Нахождение оптимального значения количества кластеров" и моментально получить ответ, а не ждать два месяца, пока этот вопрос не попадется на глаза тому, кто может ответить. Интересно, за это время вы сами-то на вопрос ответили?

Ну вот из первых же строк вывода Гуугла:

http://espressocode.top/elbow-method-for-optimal-value-of-k-in-kmeans/

https://ranalytics.github.io/data-mining/101-Partitioning-Algos.html

http://www.rupython.com/scikit-learn-k-means-elbow-67782.html

→ Ссылка