2016-12-29 5 views
-1

は、私は現在Minmax正規化は複雑な部分をキャストしますか?

def numpy_minmax(X): 
    xmin = X.min() 
    print X.min() 
    print X.max() 
    return (2*(X - xmin)/(X.max() - xmin)-1)*0.9 
+0

複素数の最小値はどのくらいですか?どちらが小さく、 '3 + 4j'または' 4 + 3j'ですか?はい、NumPyは虚数部を無視します。あなたは 'np.imag(X).min()'を考慮に入れることができますが、まずは "minimaxの正規化"が複素数であったとしますか? – FTP

+0

ニューラルネットワークは複素数をどのように扱いますか?正規化はニューラルネットワークの入力に対して行われました。どうすれば正規化できますか? –

+0

正規化にはどのようなものがありますか? – eyllanesc

答えて

1

複素数の最小または最大である...?...なぜ複素数を含むnumpy.ndarrayを正常化しようとしているが、何らかの理由で複雑な部分を離れてキャストし、私の実装でいます未定義の概念。このため、NumPyは配列の最大値または最小値を取るときに虚数部を無視します。

一般に、正規化はを中心にのスケーリングから成ります。

複素数の配列の中心の自然な概念は、それらを含む最小のディスクの中心です。しかし、これは(チェビシェフの中心)はやや計算が難しいです。中心にするより簡単な方法は、数値を含む最小の軸に沿った矩形を取ることです。これは、実数部と虚数部の最大値/最小値を別々に見ることを含む。

a = (np.real(X).min() + np.real(X).max())/2.0 
b = (np.imag(X).min() + np.imag(X).max())/2.0 
Y = X - complex(a, b) 

次に、スケーリング。数字の絶対値を最大0.9にしたいと思うように見えます。これは、Yの要素の絶対値の最大値を使用して配列できます。

return 0.9*Y/np.abs(Y).max() 

この方法だけでは解決できません。しかし、私には、上記は複雑なケースに対するあなたのコードの最も直接的な適応であるように思われます。

関連する問題