当我应用最小-最大缩放比例时,Numpy 对称矩阵变得不对称
Numpy symmetric matrix becomes asymmetric when I applied min-max scaling
我有一个对称矩阵 (1877 x 1877),这里是 matrix file。我尝试标准化 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'))
查看 this 描述,minmaxscaler 似乎可以工作 column-by-column,因此,自然地,您不能指望它保持对称性。
在你的情况下最好做什么取决于你想要达到的目标,真的。如果您只需要 0 到 1 之间的值,您可以手动重新缩放:
mn, mx = dist.min(), dist.max()
dist01 = (dist - mn) / (mx - mn)
但根据您的最终问题,这可能过于简单...
我有一个对称矩阵 (1877 x 1877),这里是 matrix file。我尝试标准化 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'))
查看 this 描述,minmaxscaler 似乎可以工作 column-by-column,因此,自然地,您不能指望它保持对称性。
在你的情况下最好做什么取决于你想要达到的目标,真的。如果您只需要 0 到 1 之间的值,您可以手动重新缩放:
mn, mx = dist.min(), dist.max()
dist01 = (dist - mn) / (mx - mn)
但根据您的最终问题,这可能过于简单...