Normalização antes da validação cruzada

16

Os dados de normalização (com média zero e desvio padrão da unidade) antes de executar uma validação cruzada repetida em dobra k tem conquistas negativas, como ajuste excessivo?

Nota: isto é para uma situação em que #cases> total #features

Estou transformando alguns dos meus dados usando uma transformação de log e normalizando todos os dados como acima. Estou então realizando a seleção de recursos. Em seguida, aplico os recursos selecionados e os dados normalizados a uma validação cruzada repetida em 10 vezes para tentar estimar o desempenho generalizado do classificador e estou preocupado que o uso de todos os dados para normalizar possa não ser apropriado. Devo normalizar os dados de teste de cada dobra usando dados de normalização obtidos dos dados de treinamento para essa dobra?

Quaisquer opiniões recebidas com gratidão! Desculpas se esta pergunta parece óbvia.

Edit: Ao testar isso (de acordo com as sugestões abaixo), descobri que a normalização anterior ao CV não fazia muita diferença em termos de desempenho quando comparada à normalização no CV.

BGreene
fonte

Respostas:

13

Para responder à sua pergunta principal, seria ideal e mais adequado escalar dentro do currículo. Mas provavelmente não importará muito e poderá não ser importante na prática, se o seu classificador redimensionar os dados, o que mais importa (pelo menos em R).

No entanto, a seleção do recurso antes da validação cruzada é um GRANDE NÃO e levará ao sobreajuste, pois você os selecionará com base no desempenho em todo o conjunto de dados. A transformação do log pode ser executada fora, pois a transformação não depende dos dados reais (mais do tipo de dados) e não é algo que você não faria se tivesse apenas 90% dos dados em vez de 100% e não é ajustado de acordo com os dados.

Para responder também ao seu comentário, obviamente, se isso resultará em excesso de ajuste dependerá da sua maneira de seleção de recursos. Se você os escolher por acaso (por que você faria isso?) Ou por causa de considerações teóricas a priori (outra literatura), isso não importará. Mas se depender do seu conjunto de dados, será. Elements of Statistical Learnings tem uma boa explicação. Você pode baixar livremente e legalmente um .pdf aqui http://www-stat.stanford.edu/~tibs/ElemStatLearn/

O ponto a seu respeito está na seção 7.10.2 na página 245 da quinta impressão. É intitulado "As maneiras erradas e corretas de realizar a validação cruzada".

Erik
fonte
Obrigado - certamente, se os únicos resultados relatados são para o desempenho estimado obtido usando o modelo selecionado (recursos) em cada dobra, isso não pode resultar em sobreajuste? Afinal, você está apenas relatando o desempenho generalizado de um determinado subconjunto de recursos.
BGreene
Expandi minha resposta para abordar seu comentário. Eu acho que a explicação no link é melhor do que eu posso preparar agora.
Erik
Obrigado. Isso sugere que a seleção de recurso baseada em filtro padrão nunca deve ser usada e que a seleção de recurso baseada em wrapper ou equivalente deve ser usada. Isso ainda é válido para a situação em que #Cases> #Features? (Eu tenho 259 casos, total de 56 recursos). Eu diria que o potencial de erro é menor aqui?
BGreene
4

A validação cruzada é melhor vista como um método para estimar o desempenho de um procedimento estatístico, em vez de um modelo estatístico. Portanto, para obter uma estimativa de desempenho imparcial, é necessário repetir todos os elementos desse procedimento separadamente em cada dobra da validação cruzada, o que incluiria normalização. Então, eu diria normalizar em cada dobra.

O único momento em que isso não seria necessário é se o procedimento estatístico fosse completamente insensível à escala e ao valor médio dos dados.

Dikran Marsupial
fonte
Eu acho que essa é uma boa resposta, embora não seja rigorosa, ela esclarece tudo. Eu acho que o significado é que, se você normalizar em cada dobra, é garantido que a normalização não influencia o desempenho. A maneira como foi escrita parecia que não havia outra maneira de evitar preconceitos, embora Dikran tenha apontado na última linha que existem outras maneiras. Se você faz a normalização dentro do CV, nunca aumenta o viés, ao contrário de fazê-lo fora, o que pode. O viés pode não afetar muito de qualquer maneira, como apontado na outra resposta.
Tom Anderson
1

Eu acho que se a normalização envolve apenas dois parâmetros e você tem uma amostra de bom tamanho que não será um problema. Eu ficaria mais preocupado com a transformação e o processo de seleção de variáveis. A validação cruzada de 10 vezes parece ser a raiva hoje. Alguém usa o bootstrap 632 ou 632+ para estimar a taxa de erro do classificador, como sugerido primeiro por Efron (1983) na JASA e depois posteriormente em um artigo de Efron e Tibshirani com o 632+?

Michael R. Chernick
fonte
0

Eu pessoalmente gosto do método .632. O que é basicamente um processo de substituição com substituição. Se você fizer isso e remover duplicatas, obterá 632 entradas de um conjunto de entradas de 1000. Meio arrumado.

MannyK
fonte
O estimador 632 é diferente do que você diz. Na verdade, é uma combinação linear de dois estimadores de taxa de erro que dão peso 0,632 para o bootstrape0 0estimador e 0,368 à taxa de erro aparente (também chamada de estimativa de re-substituição).
Michael R. Chernick 14/05