2017-01-31 9 views
1

私は対称行列(1877 x 1877)を持っています。ここにはmatrix fileです。私は0-1の間の値を標準化しようとします。このメソッドを適用すると、行列はもはや対称ではなくなります。どんな助けもありがとうございます。 minmaxscalerが列毎に動作しているように見えますthis記述を見るとmin-maxスケーリングを適用すると、ナンシー対称行列が非対称になります

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')) 

答えて

0

ので、当然、あなたはそれが対称性を維持するために期待することはできません。

あなたのケースでは、実際に達成しようとしていることに少しだけ依存しているのが最善です。 0と1の間の値を持つことは、あなたが手でスケール変更することができます必要とするすべての場合:

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

が、あなたの究極の問題に応じて、これは単純すぎるかもしれ...

+0

はい、あなたは正しいです、私はdidntのminmaxスケーラがフィーチャの列に適用されることを理解してください..ありがとう! – kitchenprinzessin

関連する問題