Je suis confus par deux méthodes par lesquelles un réseau est normalisé et doivent somme totale à 1,0:deux méthodes pour normaliser tableau à la somme totale de 1,0
Array pour être normalisée:
array([ 1.17091033, 1.13843561, 1.240346 , 1.05438719, 1.05386014,
1.15475574, 1.16127814, 1.07070739, 0.93670444, 1.20450255,
1.25644135])
Méthode 1:
arr = np.array(values/min(values))
array([ 1.25003179, 1.21536267, 1.32415941, 1.12563488, 1.12507221,
1.23278559, 1.23974873, 1.14305788, 1.00000000, 1.28589392,
1.34134236])
arr1 = arr/sum(arr) # Sum total to 1.0
array([ 0.09410701, 0.09149699, 0.09968761, 0.08474195, 0.08469959,
0.09280865, 0.09333286, 0.08605362, 0.07528369, 0.09680684,
0.1009812 ])
Méthode 2:
arr = np.array((values - min(values))/(max(values) - min(values)))
array([ 0.73249564, 0.63092863, 0.94966065, 0.3680612, 0.3664128 ,
0.68197101, 0.70237028, 0.41910379, 0.0000000, 0.83755771,
1.00000000])
arr2 = arr/sum(arr) # Sum total to 1.0
array([ 0.10951467, 0.09432949, 0.14198279, 0.05502845, 0.054782 ,
0.10196079, 0.10501066, 0.06265978, 0.00000000, 0.12522239,
0.14950897])
Quelle est la méthode correcte? Et pourquoi?
Le 'arr/sum (arr)' est la normalisation (et il est le bon) . Les deux autres sont des "scalings" et celui que vous devriez utiliser dépend du contexte. – MSeifert
L'appel de 'sum' sur un tableau est généralement une mauvaise idée; vous devriez utiliser 'np.sum' à la place, ce qui est plus rapide et gère mieux les tableaux multidimensionnels. – user2357112
Merci @ user2357112 – artDeco