0

我正在使用链接来解决我的问题 我有一种情况,我正在使用位置敏感度散列来查找 3 个最近的邻居。我的数据集有 22 列分类和连续,大约 5000 行。我正在使用以下代码运行 LSH:

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

在传递到 LSH 之前,我已经对所有数据集进行了编码,并且我的数据帧的数据类型是浮点数。我在这里想念什么?

如何打印前三个邻居的结果?我在数据框中的第一列是 Cust_ID,我需要打印输出如下:

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

等等

4

1 回答 1

0
lsh = LocalitySensitiveHashing( 
           datafile = "df3_clean.csv",
           dim = 22,
           r = 5368,         
           b = 100,          
      )

我认为“df3_clean.csv”没有读取给定的文件。相反,它将它作为字符串读取。尝试使用 pandas,然后使用 pandas 读取 csv。它会解决这个错误。

于 2021-02-22T16:13:41.290 回答