У меня есть 100 матриц, в которых каждая строка соответствует отдельному человеку, а столбец относится к сайтам.Я хочу отсортировать строку по степени сходства так, чтобы наиболее сходные индивидуумы находились рядом в матрице.Я использовал k-ближайших соседей для сортировки матриц по строкам и передал эти отсортированные матрицы сверточной нейронной сети.Я хочу знать, есть ли другие меры, с помощью которых я могу достичь поставленной задачи.Код, который я использую для k-ближайшего соседа:
def sort_min_diff(amat):
mb = NearestNeighbors(len(amat), metric='manhattan').fit(amat)
v = mb.kneighbors(amat)
smallest = np.argmin(v[0].sum(axis=1))
return amat[v[1][smallest]]
X_snp = np.array(snp_matrix)
q = []
for i in range(len(X_snp)):
q.append((sort_min_diff(X_snp[i])))
q = np.array(q)
Моя матрица X_snp имеет форму (100, 60, 400), то есть у меня 100 таких матриц.Кроме того, мои матрицы заполнены 0 и 1. Будем благодарны за предложения.