Целевая функция

Целевая функция чем меньше, тем лучше.

Для метода k-средних она уменьшается при увеличениии количества кластеров.

distortion = []
N = range(1, 8)
for n in N:
    model = KMeans(n_clusters=n, random_state=5678)
    model.fit(df)
    distortion.append(model.inertia_) 

На графике виден будет "локоть" - момент выхода на плато - оптимальное число кластеров

import matplotlib.pyplot as plt
from sklearn.cluster import KMeans

plt.plot(N, distortion, 'bx-')
...

 

Назначение команды: