Сортировка матрицы по сходству - PullRequest
1 голос
/ 01 апреля 2019

У меня есть 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. Будем благодарны за предложения.

...