É realmente bom executar a seleção de recursos não supervisionados antes da validação cruzada?

9

Nos elementos do aprendizado estatístico , encontrei a seguinte declaração:

Há uma qualificação: as etapas iniciais de triagem não supervisionada podem ser feitas antes que as amostras sejam deixadas de fora. Por exemplo, podemos selecionar os 1000 preditores com maior variação em todas as 50 amostras, antes de iniciar a validação cruzada. Como essa filtragem não envolve os rótulos das classes, não oferece aos preditores uma vantagem injusta.

Isso é realmente válido? Quero dizer, filtrando atributos de antemão, não estamos imitando os dados de treinamento / novo ambiente de dados - isso importa que a filtragem que estamos executando não seja supervisionada? Não é melhor executar todas as etapas de pré-processamento no processo de validação cruzada? Se esse não for o caso, significa que todo o pré-processamento não supervisionado pode ser realizado com antecedência, incluindo normalização de recursos / PCA etc. etc. Posso concordar que, com um conjunto de dados relativamente estável, essas diferenças provavelmente devem ser muito pequenas - mas isso não significa que elas não existem, certo? Qual é a maneira correta de pensar sobre isso?

Matek
fonte

Respostas:

2

Como um estágio realizado antes da validação cruzada, a seleção não supervisionada de recursos é um pouco semelhante à normalização de recursos:

  1. Do ponto de vista de uma dobra específica na validação cruzada, os dados do trem espiaram os dados do teste (embora apenas nas variáveis ​​independentes).

  2. Este espreitar é relativamente suave.

A normalização de recursos antes da validação cruzada foi discutida nesta questão . Citando a resposta de Dikran Marsupial

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.

Portanto, se você puder poupar os recursos, o melhor seria fazer com que cada validação cruzada faça qualquer processamento dependente de dados do zero.

No entanto, como dizem as respostas a essa pergunta, na prática, reverter a ordem provavelmente não mudaria muito as coisas. Certamente não há a vantagem injusta substancial que a seleção de recursos dependentes de exibe. IMHO, essa é a interpretação da citação de Elements Of Statistical Learning .y

Ami Tavory
fonte
Bem, isso basicamente coincide com meus pensamentos, e a última frase aqui é na verdade a resposta curta para minha pergunta. Obrigado, vou fazer disso uma resposta aceita.
Matek
11
O efeito pode ser pequeno, mas pode não ser tão pequeno. Como você diz, é como pré-escalar suas variáveis ​​independentes antes do CV, que usará "o futuro" (dados de teste) para ajudar a escalar "o presente" (dados de treinamento), o que não acontecerá no mundo real. Se você tem dobras aleatórias (sem usar séries temporais, estratificação, etc.), isso é menos eficaz, mas por que quebrar a barreira do trem / teste e tudo mais?
Wayne
@Wayne Eu certamente concordo com você que, sempre que possível, é melhor não quebrar a barreira do trem / teste. Pessoalmente, nunca encontrei casos do mundo real em que isso fizesse diferença (FS não supervisionado e / ou normalização), mas encontrei casos em que era absolutamente inviável fazer a seleção de recursos do "jeito certo" (ou seja, dentro de cada dobra). No entanto, vejo pela sua boa resposta (que estou votando) que você encontrou o caso oposto, portanto, aparentemente, os dois cenários existem.
Ami Tavory
Não tenho certeza de que encontrei resultados de CV nos quais a normalização também fez diferença, o que eu atribuo a geralmente fazer CV de 10 vezes, o que significa que a dobra de teste é de apenas 10%, o que diminui seu efeito. Vi uma diferença em algo como uma divisão sem CV de 67/33 ou 75/25.
Wayne
9

Eu imploro para diferir nesta questão com a opinião de @ AmiTavory, bem como com os Elementos de aprendizagem estatística.

Vindo de um campo aplicado com tamanhos de amostra muito baixos, tenho a experiência de que também as etapas não supervisionadas de pré-processamento podem introduzir um viés grave.

No meu campo, esse seria o PCA mais freqüentemente para redução de dimensionalidade antes que um classificador seja treinado. Embora eu não possa mostrar os dados aqui, vi PCA + (LDA validado cruzado) vs. validado cruzado (PCA + LDA) subestimando a taxa de erro em aproximadamente uma ordem de magnitude . (Isso geralmente é um indicador de que o PCA não é estável.)

Quanto à argumentação de "vantagem injusta" dos Elementos, se for examinada a variação dos casos de teste + taining, terminamos com recursos que funcionam bem com os casos de treinamento e teste. Assim, criamos aqui uma profecia auto-realizável que é a causa do viés super-otimista. Esse viés é baixo se você tiver tamanhos de amostra razoavelmente confortáveis.

Portanto, recomendo uma abordagem um pouco mais conservadora do que os elementos:

  • cálculos de pré-processamento que consideram mais de um caso precisam ser incluídos na validação: ou seja, são calculados apenas no respectivo conjunto de treinamento (e depois aplicados aos dados de teste)
  • As etapas de pré-processamento que consideram cada caso por conta própria (eu sou espectroscopista: exemplos seriam correção de linha de base e normalização de intensidade, que é uma normalização em linha) podem ser retiradas da validação cruzada desde que estejam antes do primeiro passo que calcula para vários casos.

Dito isto, a valiação cruzada também é apenas um atalho para realizar um estudo de validação adequado. Assim, você pode argumentar com praticidade:

  • Você pode verificar se o pré-processamento em questão produz resultados estáveis ​​(você pode fazer isso, por exemplo, por validação cruzada). Se você achar que já está perfeitamente estável com tamanhos de amostra mais baixos, IMHO, você pode argumentar que não haverá muito viés ao retirá-lo da validação cruzada.

  • No entanto, para citar um supervisor anterior: Tempo de cálculo não é argumento científico.
    Costumo fazer uma "pré-visualização" de algumas dobras e poucas iterações para a validação cruzada, para garantir que todo o código (incluindo o resumo / gráficos dos resultados) e o deixo durante a noite ou no final de semana no servidor por um período validação cruzada mais refinada.

cbeleites descontentes com o SX
fonte