Хэширование в зависимости от местности, чтобы найти ближайших соседей в Python - PullRequest
0 голосов
/ 11 марта 2020

Я использую эту ссылку для достижения решения своей проблемы. У меня есть ситуация, когда я использую хеширование с учетом местоположения, чтобы найти 3 ближайших соседей. Мой набор данных состоит из 22 столбцов, как категориальных, так и непрерывных, и содержит около 5000 строк. Я использую следующий код для запуска L SH:

from LocalitySensitiveHashing import *
lsh = LocalitySensitiveHashing( 
               datafile = "df3_clean.csv",
               dim = 22,
               r = 5368,         
               b = 100,          
          )
lsh.get_data_from_csv()
lsh.initialize_hash_store()
lsh.hash_all_data()
similarity_neighborhoods = lsh.lsh_basic_for_nearest_neighbors()
lsh.write_clusters_to_file( merged_similarity_groups, "clusters.txt" )

Я получаю эту ошибку: ValueError: data type must provide an itemsize

Я уже закодировал весь свой набор данных перед передачей в L SH и тип данных для моего фрейма данных float. Что мне здесь не хватает?

Как распечатать результат для трех верхних соседей? мой первый столбец в кадре данных - Cust_ID, и мне нужно напечатать вывод следующим образом:

CUST_ID     1st_neighbor.    2nd_neighbor      3rd_neighbor
0022        0012             1234              2233
0023        0022             1234              2231

и т. д.

...