Eu tenho um problema de regressão com 5-6k variáveis. Divido meus dados em três conjuntos não sobrepostos: treinamento, validação e teste. Treino usando apenas o conjunto de treinamento e gere muitos modelos diferentes de regressão linear escolhendo um conjunto diferente de 200 variáveis para cada modelo (eu tento cerca de 100 mil desses subconjuntos). Classifico um modelo como . Usando esse critério, acabo escolhendo um modelo. Acontece que o modelo escolhido tem R ^ 2 muito semelhante nos dados de treinamento e validação. No entanto, quando tento esse modelo nos dados de teste, ele tem R ^ 2 muito menor . Parece que, de alguma forma, estou me adaptando tanto aos dados de treinamento quanto à validação. Alguma idéia de como posso obter um modelo mais robusto?
Tentei aumentar o tamanho dos dados de treinamento, mas isso não ajudou. Estou pensando em talvez diminuir o tamanho de cada subconjunto.
Eu tentei usar a regularização. No entanto, os modelos que eu obtenho usando o laço ou a rede elástica têm R ^ 2 muito menor no conjunto de treinamento e no conjunto de validação, em comparação com o modelo que eu obtenho fazendo a abordagem de seleção de subconjunto. Portanto, não considero esses modelos, pois presumo que, se o Modelo A tiver um desempenho melhor que o Modelo B, tanto no conjunto de treinamento quanto no conjunto de validação, o Modelo A é claramente melhor que o Modelo B. Eu ficaria muito curioso se você discordo disso.
Em uma nota relacionada, você acha que é um critério ruim para escolher meus modelos?
Você está se ajustando demais porque está usando
min(training r-square,validation r-square)
dados para produzir uma pontuação, que por sua vez está sendo usada para orientar a seleção do modelo. Como é provável que seu quadrado r de treinamento seja igual ou inferior (afinal, você acabou de executar uma regressão), isso é aproximadamente equivalente a fazer a seleção de modelo no quadrado r dos dados de treinamento.Isso tem o efeito de se ajustar muito bem aos dados de treinamento e ignorar os dados de validação.
Se você usou apenas
validation r-square
então, deve obter um resultado melhor.fonte