Ближайший сосед в pyspark, использующий евклидово расстояние или подобное

Поэтому мне нужно найти ближайших соседей данного ряда в pyspark DF, используя евклидово расстояние или что-нибудь еще. данные, которые у меня есть более 20 столбцов, более тысячи строк и все значения являются числами.

Я пытаюсь пересчитать некоторые данные в pyspark, так как у mllib нет встроенной поддержки, я решил создать их сам, используя smote.

Мой подход до сих пор состоял в том, чтобы преобразовать все категориальные расстояния в индексы, используя stringto index, чтобы я мог найти евклидово расстояние и соседей и, следовательно, выполнить smote.

Я довольно новичок, чтобы зажечь и мл. Любая помощь будет оценена.

1 ответ

Решение

Не пробовал, но нашел этот скрипт: https://github.com/jakac/spark-python-knn/blob/master/python/gaussalgo/knn/knn.py

Если ваши данные представляют собой фрейм данных, вы должны сначала объединить ваш столбец с вектором с помощью vectorASsembler https://spark.apache.org/docs/latest/ml-features.html, а затем использовать df.select("id", "yourColumnVector")

Библиотека, которую я предоставил, кажется, работает только с rdd, поэтому вы должны преобразовать ваш фрейм данных в RDD, используя df.rdd

Другие вопросы по тегам