Uma boa prática comum no Machine Learning é apresentar normalização ou padronização de dados das variáveis preditoras, é isso, centralizar os dados subtraindo a média e normalizá-los dividindo pela variação (ou desvio padrão também). Para auto-contenção e para minha compreensão, fazemos isso para alcançar duas coisas principais:
- Evite pesos de modelo pequenos demais para fins de estabilidade numérica.
- Garanta a convergência rápida de algoritmos de otimização, como por exemplo, o Gradiente Conjugado, para que a grande magnitude de uma dimensão preditora em relação às demais não leve a uma convergência lenta.
Geralmente, dividimos os dados em conjuntos de treinamento, validação e teste. Na literatura, geralmente vemos que, para caracterizar a normalização, eles levam a média e a variação (ou desvio padrão) ao longo de todo o conjunto de variáveis preditoras. A grande falha que vejo aqui é que, se você fizer isso, estará introduzindo informações futuras nas variáveis preditivas de treinamento, ou seja, as informações futuras contidas na média e na variância.
Portanto, eu caracterizo a normalização sobre os dados de treinamento e salvo a média e a variação. Em seguida, aplico a normalização de recursos às variáveis preditivas dos conjuntos de dados de validação e teste usando a média e as variações do treinamento. Existem falhas fundamentais nisso? alguém pode recomendar uma alternativa melhor?