Вам нужно будет самостоятельно вычислять расстояния (что легко сделать, просто так!).
Хотя (плохой) алгоритм, реализованный в Spark, имеет эти расстояния, в настоящее время они не возвращаются. ,Таким образом, вам нужно изменить Spark, чтобы получить их.
Лучшие алгоритмы Избегайте вычисления всех этих расстояний, чтобы быть быстрее. Вот почему эти алгоритмы быстрее, чем Spark, который имеет только наивный алгоритм Ллойда. Но тогда эти алгоритмы также не смогут их вернуть. Некоторые могут иметь ограничения на расстояния, хотя. Но вам понадобится последний O (n) проход, чтобы вычислить точные расстояния, и вам обычно нужно будет сделать это самостоятельно.
При «прогнозировании» (обратите внимание, что кластеризация обычно не предиктивный, большинство из них не предоставляют функцию «предсказать», и при этом не принято делать разделение «поезд-тест», поэтому, поскольку он просто не работает), вы можете с таким же успехом реализовать (то есть написать код самостоятельно, а не использоватьфункция библиотеки) это самостоятельно. Тогда у вас будут расстояния до всех кластерных центров. Это умнее, чем пересчитывать расстояние снова (то есть k + 1 вычисление расстояния на точку вместо k).
И последнее, но не менее важное: вас также может заинтересовать евклидово, а не квадратичное евклидово расстояние. Они не минимизированы с помощью k-средних (это сводит только к минимуму расхождения Брегмана, а евклидово расстояние - нет), но обычно разница не слишком велика. Просто так не думайте, что результат оптимален.