def construct_k_nearest_matrix(self, dt_matrix, k):
tmp = np.array(1 - pairwise_distances(dt_matrix[dt_matrix.columns[1:]], metric = "cosine"))
similarity_matrix = pd.DataFrame(tmp, index = dt_matrix.index.tolist(), columns = dt_matrix.index.tolist())
for i in similarity_matrix.index:
tmp = [int(i),[]]
j = 0
while j < k:
max_col = similarity_matrix.loc[i].idxmax(axis = 1)
similarity_matrix.loc[i][max_col] = -1
if max_col != i:
tmp[1].append(int(max_col)) #max column name
j += 1
self.k_nearest.append(tmp)
评论列表
文章目录