Używam Mózgu do trenowania sieci neuronowej na zestawie funkcji, który zawiera zarówno wartości dodatnie, jak i ujemne. Ale Mózg wymaga wartości wejściowych od 0 do 1. Jaki jest najlepszy sposób normalizacji moich danych?
Używam Mózgu do trenowania sieci neuronowej na zestawie funkcji, który zawiera zarówno wartości dodatnie, jak i ujemne. Ale Mózg wymaga wartości wejściowych od 0 do 1. Jaki jest najlepszy sposób normalizacji moich danych?
Odpowiedzi:
Nazywa się to normalizacją opartą na jedności. Jeśli masz wektor , możesz uzyskać jego znormalizowaną wersję, powiedzmy , wykonując:Z
Znajdź największą liczbę dodatnią i najmniejszą (najbardziej ujemną) w tablicy. Dodaj wartość bezwzględną najmniejszej (najbardziej ujemnej) liczby do każdej wartości w tablicy. Podziel każdy wynik przez różnicę między największą i najmniejszą liczbą.
powiedzmy, że masz wektor / tablicę wartości v = [1, -2, 3]
minV = Math.min.apply(Math, v);;
for(var i=0; i<v.length; i++) {v[i] -= minV;}
maxV = Math.max.apply(Math, v);;
for(var i=0; i<v.length; i++) {v[i] /= ( maxV - minV );}
Wyjście na końcu będzie v = [0.6, 0, 1]
. Wyjaśnienie:
Przesuwamy cały zakres wartości, aby zacząć od 0, abyśmy nie mieli negatywów
Dzieląc wartości przez (max - min) zakresu, tak aby max wynosił 1