Nano Hash - криптовалюты, майнинг, программирование

Как найти похожие строки в кадре данных pyspark?

У меня есть фрейм данных искры, который выглядит так:

+-------+-----------------------------+
|user_id|       profile_features      |
+-------+-----------------------------+
|   100 |  [0.0,   0.33.., 0.66.., ...|
|   101 |  [0.42..,0.15.., 0.57.., ...|
|   102 |  [0.33..,0.0,    0.25.., ...|
|   103 |  [0.15..,0.33.., 0.15.., ...|
|   104 |  [0.0,   0.0,    0.33.., ...|
+-------+-----------------------------+

Как найти наиболее похожих пользователей на данного пользователя по их user_id? Я думаю о том, чтобы умножить данный user_id на другие строки (user_ids), чтобы найти их сходство, а затем каким-то образом отсортировать результирующую таблицу и вернуть самые верхние N user_ids. Если это правильный путь, как реализовать его в pyspark?

24.08.2020

Ответы:


1

Передайте столбцы, которые вы хотите найти дубликаты в атрибутах, и выполните группировку, подсчитывая, если количество больше 1, а затем его дубликаты, в противном случае уникальные записи/

Attribute1 = ["user_id","profile_features"]

Selected_Col_Groupby = Data.select(Attribute1).groupBy(Attribute1).count()

Rule_Flag = Selected_Col_Groupby.withColumn('RuleCol', f.when(Selected_Col_Groupby["count"] > 1, 1).otherwise(0)).drop("count")

Duplicates = Rule_Flag.filter('RuleCol'+" == 1")
Not_Duplicates = Rule_Flag.filter('RuleCol'+" == 0")

24.08.2020
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..