Поиск оптимального значения 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 шт):
Очень странно, как вы "пишете" кластеризацию 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