Ближайший сосед в 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