ナンシー初心者はこちら。私は、ニューラルネットワークへの入力を標準化(機能スケーリング、標準化ともいう)しようとしています。私は線形スケーリングを行うと、私が使用している式は:配列とスカラーのナンシー数学?
I = Imin + (Imax-Imin)*(D-Dmin)/(Dmax-Dmin)
Iは、スケーリングされた入力値であり、値IminとImaxは、所望の最小及びスケーリングされた値の最大の範囲であり、Dは、元でありますDminおよびDmaxは元のデータ値の最小および最大範囲です。私は、numpy配列をとり、すべての値が正規化された配列を返すPythonメソッドが必要です。これは私がこれまで考えてきたことです。
def get_normalized_values(array):
"""I = Imin + (Imax-Imin)*(D-Dmin)/(Dmax-Dmin)"""
imin = -1
imax = 1
dmin = array.amin()
dmax = array.amax()
normalized = imin + (imax - imin)*(array - dmin)/(dmax - dmin)
return normalized
私の質問はこの作品ですか?または、配列の各要素をループして数学を実行する必要がありますか?配列やスカラーを使って数学をするだけでいいですか?つまり、array - dmin
は、各値にdminを引いた新しい一時配列を作成しますか?これが適切な用語であるかどうかはわかりませんが、これは「ベクトル化された」アプローチだと思いますか?
更新
がこの場所で配列を変更持っている方法はありますか?それは、配列のコピーを返すのではなく、関数に配列を渡して元の配列を変更させることですか?
このようなものは正常に動作しますが、試してみてください。一つのことは、aminとamaxはちょうどminとmaxでなければならないということです。またはargmin/argmax。 –