При расчете разницы между каждой точкой данных и центром ее назначенного кластера и возведении ее в квадрат, а затем суммировании, я попытался использовать два разных подхода
Подход sample1 использует матрицу X, а подход sample2 использует orignal dataframe.
Кажется, я не понимаю, почему результаты отличаются?
Кто-нибудь может объяснить?
ageinc_df:
income age z_income z_age
0 101743 58 0.550812 1.693570
1 49597 27 -0.777331 -1.130565
2 36517 52 -1.110474 1.146963
3 33223 49 -1.194372 0.873660
4 72994 53 -0.181416 1.238064
#Sample1
X = ageinc_df[['z_income','z_age']].as_matrix()
cluster_assignments = model.fit_predict(X)
centers = model.cluster_centers_
import numpy as np
#Following line is in question
print(np.sum((X - centers[cluster_assignments]) ** 2))
приводит всего к 1189.7476232504307
против (в дальнейшем я решил не использовать матрицу X)
#Sample2
cluster_assignments1 = model.fit_predict(ageinc_df[['z_income','z_age']])
centers = model.cluster_centers_
import numpy as np
#matrix is replaced by dataframe
print(np.sum( (ageinc_df[['z_income','z_age']] - centers[cluster_assignments1]) ** 2))
приводит к: z_income 191.516452 z_age 998.231171