我有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,4500),即我有100个这样的矩阵。另外,我的矩阵充满了0和1。 建议将不胜感激。