Estou tentando prever o resultado de um sistema complexo usando redes neurais (RNAs). Os valores do resultado (dependentes) variam entre 0 e 10.000. As diferentes variáveis de entrada têm intervalos diferentes. Todas as variáveis têm distribuições aproximadamente normais.
Considero diferentes opções para dimensionar os dados antes do treinamento. Uma opção é dimensionar as variáveis de entrada (independentes) e de saída (dependentes) para [0, 1] calculando a função de distribuição cumulativa usando os valores de média e desvio padrão de cada variável, independentemente. O problema com este método é que, se eu usar a função de ativação sigmóide na saída, provavelmente perderei dados extremos, especialmente aqueles não vistos no conjunto de treinamento
Outra opção é usar um z-score. Nesse caso, não tenho o problema extremo dos dados; no entanto, estou limitado a uma função de ativação linear na saída.
Quais são outras técnicas de normalização aceitas que estão sendo usadas com RNAs? Tentei procurar opiniões sobre este tópico, mas não encontrei nada útil.
fonte
Respostas:
Uma abordagem padrão é dimensionar as entradas para ter média 0 e uma variação de 1. Também a correlação linear / branqueamento / pca ajuda muito.
Se você estiver interessado nos truques do comércio, posso recomendar o eficiente papel de backprop da LeCun.
fonte
1- A normalização mín-máx mantém a distribuição original das pontuações, exceto por um fator de escala, e transforma todas as pontuações em um intervalo comum [0, 1]. No entanto, esse método não é robusto (ou seja, o método é altamente sensível a valores discrepantes).
2- Padronização (normalização do escore Z) A técnica mais usada, calculada usando a média aritmética e o desvio padrão dos dados fornecidos. No entanto, tanto o desvio médio quanto o padrão são sensíveis aos valores discrepantes, e essa técnica não garante uma faixa numérica comum para os escores normalizados. Além disso, se as pontuações de entrada não forem distribuídas gaussianas, essa técnica não reterá a distribuição de entrada na saída.
3- Mediana e MAD: A mediana e o desvio médio absoluto (MAD) são insensíveis aos valores extremos e aos pontos nas caudas extremas da distribuição. portanto, é robusto. No entanto, essa técnica não retém a distribuição de entrada e não transforma as pontuações em um intervalo numérico comum.
4- estimadores tanh: Os estimadores tanh introduzidos por Hampel et al. são robustos e altamente eficientes. A normalização é dada por
onde μGH e σGH são as estimativas de média e desvio padrão, respectivamente, da distribuição de pontuação genuína, conforme fornecido pelos estimadores de Hampel.
Portanto, recomendo os estimadores de tanh.
referência https://www.cs.ccu.edu.tw/~wylin/BA/Fusion_of_Biometrics_II.ppt
fonte
Dei uma resposta semelhante aqui Ao realizar uma regressão múltipla, quando você deve centralizar suas variáveis preditoras e quando deve padronizá-las? mas achava que era um contexto suficientemente diferente para que uma resposta pudesse chegar aqui.
Existe um ótimo recurso da usenet http://www.faqs.org/faqs/ai-faq/neural-nets/part2/section-16.html
Em termos simples, fornece alguns dos problemas e considerações quando se deseja normalizar / padronizar / redimensionar os dados. Como trata o assunto de uma perspectiva de aprendizado de máquina, e como sua pergunta é ML, ela pode ter alguma relevância.
fonte
Você poderia fazer
fonte
Se você estiver trabalhando
python
,sklearn
possui um método para fazer isso usando diferentes técnicas em seupreprocessing
módulo (além de um recurso de pipeline bacana, com um exemplo em seus documentos):fonte
Bem, [0,1] é a abordagem padrão. Para redes neurais, funciona melhor no intervalo de 0 a 1. A escala Min-Max (ou Normalização) é a abordagem a seguir.
Agora, nos discrepantes, na maioria dos cenários, precisamos recortá-los, já que discrepantes não são comuns, você não deseja que os discrepantes afetem seu modelo (a menos que a detecção de anomalias seja o problema que você está resolvendo). Você pode recortá-lo com base na regra empírica de 68-95-99.7 ou fazer um gráfico de caixa, observar e recortá-lo.
Fórmula MinMax -
(xi - min(x)) / (max(x) - min(x))
ou pode usarsklearn.preprocessing.MinMaxScaler
fonte
"Aceito" é o que funciona melhor para você - então você o aceita.
Na minha experiência, ajustar uma distribuição da família de distribuições Johnson para cada um dos recursos contínuos funciona bem porque as distribuições são altamente flexíveis e podem transformar a maioria dos recursos uni-modais em distribuições normais padrão. Também ajudará com recursos multimodais, mas o ponto é que geralmente os coloca da forma mais desejável possível (os dados distribuídos gaussianos padrão são ideais para trabalhar - são compatíveis e, às vezes, ideais para quase todos os método estatístico / ML disponível).
http://qualityamerica.com/LSS-Knowledge-Center/statisticalinference/johnson_distributions.php
fonte