J'utilise Brain pour former un réseau neuronal sur un ensemble de fonctionnalités qui comprend des valeurs positives et négatives. Mais Brain nécessite des valeurs d'entrée comprises entre 0 et 1. Quelle est la meilleure façon de normaliser mes données?
machine-learning
neural-network
feature-scaling
normalization
javascript
Jonathan Shobrook
la source
la source
Trouvez le plus grand nombre positif et le plus petit nombre (le plus négatif) dans le tableau. Ajoutez la valeur absolue du plus petit nombre (le plus négatif) à chaque valeur du tableau. Divisez chaque résultat par la différence entre le plus grand et le plus petit nombre.
la source
dites que vous avez un vecteur / tableau de valeurs
v = [1, -2, 3]
La sortie à la fin sera
v = [0.6, 0, 1]
. Explication:Pousser toute la plage de valeurs pour commencer à partir de 0, afin que nous n'ayons aucun négatif
Diviser les valeurs par (max - min) de plage, de sorte que max sera 1
la source
Avant de faire cela, vous voudrez peut-être vérifier les valeurs aberrantes. Supposons que 99% des données se situent dans la plage (-5, 5), mais un petit gars prend une valeur de 25,0. Votre réseau normalisé se regrouperait autour de (0, 0,3), et cela poserait problème pour le réseau neuronal à apprendre.
la source