2016-02-16 3 views
0

У меня есть требование переопределить алгоритм оценки расстояния от Kmeans. Я не хочу внедрять метод вычисления евклидовых расстояний, но хочу его настроить. Как я могу переопределить его?Как переопределить метод оценки расстояния Метод алгоритма Kmeans

ответ

0

Насколько я знаю, к сожалению, нет способа предоставить пользовательскую функцию расстояния для реализации Mllib Apache Spark в K-Means.

Есть несколько вариантов для вас, если вы готовы отойти от реализации mllib. Один из них - Apache Math Commons' implementation алгоритма K-Means, который позволяет вам предоставлять свою собственную функцию расстояния как один из аргументов конструктора.

Существует также родная библиотека Scala, называемая Nak, которая предоставляет свои собственные implementation. Реализация Nak также позволяет вам выполнять свою дистанционную функцию, а также параметризоваться на любом типе T и поэтому может сэкономить вам немного неудобства при переводе типов туда и обратно, если вы активно используете Spark. К сожалению, Nak, по-видимому, страдает от некоторых проблем обслуживания, поскольку использование его заблокирует вас в довольно старой версии Scala Breeze (0,9 против текущего 0,12), что может быть или не быть проблемой для вас.

Смежные вопросы