私は配列を正規化するはずです。私は、正規化について読み、式に遭遇しました:正規化VS.ノーマライズする方法
私はそれのために次の関数を書いた:要素の配列を正規化することになっている
def normalize_list(list):
max_value = max(list)
min_value = min(list)
for i in range(0, len(list)):
list[i] = (list[i] - min_value)/(max_value - min_value)
。
は、その後、私はこれを越えcomed持っている:https://stackoverflow.com/a/21031303/6209399あなたは、単にこれを行うことにより、配列を正規化することができます言う :
def normalize_list_numpy(list):
normalized_list = list/np.linalg.norm(list)
return normalized_list
私は私自身の機能で、このテストアレイtest_array = [1, 2, 3, 4, 5, 6, 7, 8, 9]
を正規化した場合とで私はこれらの答えを得るnumpyの方法:
My own function: [0.0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875, 1.0]
The numpy way: [0.059234887775909233, 0.11846977555181847, 0.17770466332772769, 0.23693955110363693, 0.29617443887954614, 0.35540932665545538, 0.41464421443136462, 0.47387910220727386, 0.5331139899831830
なぜ関数は異なる答えを出すのですか?データの配列を正規化する他の方法はありますか? numpy.linalg.norm(list)
は何をしますか?私は何を理解していないのですか?
これは正規表現の伝統的な式ではありません。通常は(x-x_mean)/ stdev(x)と表現されています。 (標準偏差は標準偏差です) –
Bradと同意します。あなたの数式は、値を区間[0、1]にスケーリングしますが、 "正規化"は平均0と分散1(統計で)に変換することを意味します。 )。 – phg
これは「標準化」と呼ばれていませんか? @phu – OuuGiii