1

我有一个对称矩阵(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'))
4

1 回答 1

0

查看描述,minmaxscaler 似乎逐列工作,因此,自然不能指望它保持对称性。

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

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

但根据您的最终问题,这可能太简单了......

于 2017-01-31T05:24:52.573 回答