В кластеризации k-средних
У меня есть большое количество выборок в каждом кластере, поэтому, когда у меня есть новая выборка, и я хочу получить к ней 10 ближайших сообщений, я должен рассчитать расстояние, используя евклидово или косинусное выражение, или что-то еще, для вычисления которых требуется много времени это большое количество образцов в кластере.
Есть ли способ установить радиоприемники и использовать новый образец в качестве центра и получить только значения в этих радиоприемниках?
with open('Clustring4m.pkl', 'wb') as fid:
pickle.dump(km, fid)
new_post_label = km.predict(new_post_vec)[0]
similar_indices = (km.labels_==new_post_label).nonzero()[0]
similar = []
for i in similar_indices:
#print(i)
dist = sp.linalg.norm((new_post_vec - X_train[i]).toarray())
similar.append((dist, df_train[i]))