Transformo todos os meus dados ou dobras (se o CV for aplicado) ao mesmo tempo? por exemplo
(allData - mean(allData)) / sd(allData)
Transformo trainset e testset separadamente? por exemplo
(trainData - mean(trainData)) / sd(trainData)
(testData - mean(testData)) / sd(testData)
Ou eu transformo o trainset e uso cálculos no testset? por exemplo
(trainData - mean(trainData)) / sd(trainData)
(testData - mean(trainData)) / sd(trainData)
Eu acredito que 3 é o caminho certo. Se 3 estiver correto, tenho que me preocupar com a média não ser 0 ou o intervalo não estar entre [0; 1] ou [-1; 1] (normalização) do conjunto de testes?
R
? Veja esta pergunta: stackoverflow.com/questions/49260862/…Respostas:
A terceira maneira está correta. Exatamente por que é abordado em detalhes maravilhosos em Os elementos do aprendizado estatístico , consulte a seção "A maneira errada e correta de realizar a validação cruzada" e também no capítulo final de Aprendendo com os dados , no exemplo do mercado de ações.
Essencialmente, os procedimentos 1 e 2 vazam informações sobre a resposta ou o futuro do conjunto de dados retidos no treinamento ou avaliação do seu modelo. Isso pode causar um viés de otimismo considerável na avaliação do seu modelo.
A idéia na validação de modelo é imitar a situação em que você estaria quando seu modelo está tomando decisões de produção, quando você não tem acesso à resposta verdadeira. A conseqüência é que você não pode usar a resposta no conjunto de testes para nada, exceto comparando com os valores previstos.
Outra maneira de abordar isso é imaginar que você só tem acesso a um ponto de dados de cada vez (uma situação comum para modelos de produção). Qualquer coisa que você não possa fazer sob essa suposição, deve desconfiar bastante. Claramente, uma coisa que você não pode fazer é agregar todos os novos pontos de dados passados e futuros para normalizar seu fluxo de produção - portanto, fazer o mesmo para validação de modelo é inválido.
Você não precisa se preocupar com a média do seu conjunto de testes ser diferente de zero, é uma situação melhor do que influenciar suas estimativas de desempenho. Embora, é claro, se o teste for realmente elaborado a partir da mesma distribuição subjacente que o seu trem (uma suposição essencial no aprendizado estatístico), essa média deve sair como aproximadamente zero.
fonte
Clearly, one thing you cannot do is aggregate over all new data-points past and future to normalize your production stream of data
. Por que não?