当我应用最小-最大缩放时,Numpy 对称矩阵变得不对称



我有一个对称矩阵(1877 x 1877),这里是矩阵文件。我尝试标准化 0-1 之间的值。应用此方法后,矩阵不再对称。任何帮助,不胜感激。

print((dist.transpose() == dist).all()) # this prints 'True'
def sci_minmax(X):
    minmax_scale = preprocessing.MinMaxScaler()
    return minmax_scale.fit_transform(X)
sci_dist_scaled = sci_minmax(dist)
(sci_dist_scaled.transpose() == sci_dist_scaled).all() # this print 'False'
sci_dist_scaled.dtype, dist.dtype # (dtype('float64'), dtype('float64'))

从这个描述来看,minmaxscaler 似乎是逐列工作的,所以,自然地,你不能指望它保持对称性。

在你的情况下,最好的做法取决于你想要实现的目标,真的。如果您只需要 0 到 1 之间的值,则可以手动重新缩放:

 mn, mx = dist.min(), dist.max()
 dist01 = (dist - mn) / (mx - mn)

但根据您的最终问题,这可能过于简单化......

最新更新