Estoy tratando de predecir el resultado de un sistema complejo utilizando redes neuronales (ANN). Los valores de resultado (dependientes) oscilan entre 0 y 10,000. Las diferentes variables de entrada tienen diferentes rangos. Todas las variables tienen distribuciones más o menos normales.
Considero diferentes opciones para escalar los datos antes del entrenamiento. Una opción es escalar las variables de entrada (independiente) y de salida (dependiente) a [0, 1] calculando la función de distribución acumulativa usando los valores de desviación estándar y media de cada variable, independientemente. El problema con este método es que si uso la función de activación sigmoidea en la salida, muy probablemente perderé datos extremos, especialmente aquellos que no se ven en el conjunto de entrenamiento
Otra opción es usar un puntaje z. En ese caso no tengo el problema de datos extremos; Sin embargo, estoy limitado a una función de activación lineal en la salida.
¿Cuáles son otras técnicas de normalización aceptadas que se usan con los ANN? Traté de buscar comentarios sobre este tema, pero no pude encontrar nada útil.
fuente
Respuestas:
Un enfoque estándar es escalar las entradas para que tengan una media de 0 y una varianza de 1. También la decorelación lineal / blanqueamiento / pca ayuda mucho.
Si está interesado en los trucos del oficio, puedo recomendar el eficiente papel backprop de LeCun.
fuente
1- La normalización Min-max retiene la distribución original de los puntajes, excepto por un factor de escala y transforma todos los puntajes en un rango común [0, 1]. Sin embargo, este método no es robusto (es decir, el método es muy sensible a los valores atípicos).
2- Estandarización (normalización del puntaje Z) La técnica más utilizada, que se calcula utilizando la media aritmética y la desviación estándar de los datos dados. Sin embargo, tanto la desviación estándar como la media son sensibles a los valores atípicos, y esta técnica no garantiza un rango numérico común para los puntajes normalizados. Además, si las puntuaciones de entrada no están distribuidas en Gauss, esta técnica no retiene la distribución de entrada en la salida.
3- Mediana y MAD: La mediana y la desviación absoluta mediana (MAD) son insensibles a los valores atípicos y los puntos en las colas extremas de la distribución. Por lo tanto, es robusto. Sin embargo, esta técnica no retiene la distribución de entrada y no transforma los puntajes en un rango numérico común.
4- estimadores de tanh: Los estimadores de tanh introducidos por Hampel et al. Son robustos y altamente eficientes. La normalización está dada por
donde μGH y σGH son las estimaciones de desviación estándar y media, respectivamente, de la distribución de puntaje genuina dada por los estimadores de Hampel.
Por lo tanto, recomiendo estimadores de tanh.
referencia https://www.cs.ccu.edu.tw/~wylin/BA/Fusion_of_Biometrics_II.ppt
fuente
Di una respuesta similar aquí Al realizar una regresión múltiple, ¿cuándo debería centrar sus variables predictoras y cuándo debería estandarizarlas? pero pensó que era un contexto lo suficientemente diferente que una respuesta podría ir aquí.
Hay un gran recurso de Usenet http://www.faqs.org/faqs/ai-faq/neural-nets/part2/section-16.html
Da en términos simples algunos de los problemas y consideraciones cuando uno quiere normalizar / estandarizar / reescalar los datos. Como trata el tema desde una perspectiva de aprendizaje automático, y como su pregunta es ML, podría tener cierta relevancia.
fuente
Podrías hacerlo
fuente
Si está trabajando
python
,sklearn
tiene un método para hacerlo utilizando diferentes técnicas en supreprocessing
módulo (más una característica ingeniosa de canalización, con un ejemplo en sus documentos):fuente
Bueno, [0,1] es el enfoque estándar. Para redes neuronales, funciona mejor en el rango 0-1. La escala Min-Max (o Normalización) es el enfoque a seguir.
Ahora en los valores atípicos, en la mayoría de los escenarios tenemos que recortarlos, ya que los valores atípicos no son comunes, no desea que los valores atípicos afecten a su modelo (a menos que la detección de anomalías sea el problema que está resolviendo). Puede recortarlo según la regla empírica de 68-95-99.7 o hacer un diagrama de caja, observarlo y recortarlo en consecuencia.
Fórmula MinMax,
(xi - min(x)) / (max(x) - min(x))
o puede usarsklearn.preprocessing.MinMaxScaler
fuente
"Aceptado" es lo que funcione mejor para usted, entonces lo acepta.
En mi experiencia, ajustar una distribución de la familia de distribuciones Johnson a cada una de las características continuas funciona bien porque las distribuciones son muy flexibles y pueden transformar la mayoría de las características unimodales en distribuciones normales estándar. También ayudará con las funciones multimodales, pero el punto es que generalmente las pone en la forma más deseable posible (los datos distribuidos en Gauss estándar son ideales para trabajar: son compatibles y, a veces, óptimos para la mayoría de los casos). método estadístico / ML disponible).
http://qualityamerica.com/LSS-Knowledge-Center/statisticalinference/johnson_distributions.php
fuente