Quando estamos construindo um modelo estatístico ou de machine learning precisamos estimar quão bom ele é, baseado em alguma métrica. Adicionalmente, este teste de “qualidade” deve ser executado em dados que não foram usados na construção do modelo, assim poderemos inferir o comportamento do modelo em dados novos (que nunca foram vistos).

Isso faz todo sentido quanto entendemos o processo como um todo. Veja na figura abaixo os diferentes tipos de dados existentes no processo de modelagem.

dados

Se um modelo for testado com os dados de treino (os mesmos dados em que foi construído) não podemos generalizar seu resultado para o ambiente de produção, já que não sabemos qual será seu comportamento em dados nunca vistos. É por isso que existe o papel dos dados de teste.

Durante o processo de treino do modelo, ainda é possível dividir os dados de treino em diferentes subconjuntos de dados. Chamamos estes subconjuntos de dados de validação e os utilizamos para fazer validações iniciais durante a aprendizagem do modelo.

É importante garantir que os conjuntos de dados de treino, validação e teste contenham a mesma distribuição dos dados, ou seja, de nada adianta treinar/validar o modelo em um conjunto de dados que não representa o cenário real do problema em estudo.

Chamamos de resampling toda essa organização dos conjuntos de dados. As principais formas resampling são:

  • Hold-out validation: Esta é a forma mais simples de separar os dados. Define-se um percentual para cada conjunto de dados (treino, validação e teste) e cria-se as amostras. Geralmente este método é usado quando temos mais dados e conseguimos comprovar que a amostra as amostras criados têm significância estatística para representar a população.
  • Bootstrap: Neste método são selecionadas amostras aleatórias dos dados (sendo que as observações podem ser reutilizadas) para avaliação do modelo. No geral, os resultados a variância do desempenho do modelo.
  • Cross validation: Existem vários tipos de cross validation, porém a mais comum é conhecida como k-fold cross validation. Neste método criamos um número k de amostras, sendo que cada amostra é deixada de lado enquanto o modelo treina com o restante delas. O processo de repete até que seja possível determinar a “qualidade” (depende da métrica em uso) de cada observação (chegando também em uma média geral). Os valores comuns para o número k de amostras são entre 5 e 10.
    k-fold cross validation geralmente é usado quando não se tem dados suficientes para seguir com a estratégia mais simples de hold-out validation.Um outro tipo de cross validation é conhecido como repeated k-fold cross validation. Neste método o processo realizado na abordagem k-fold cross validation é repetido n vezes. No final a qualidade do modelo é definida pelo desempenho médio de cada repetição. Este método é mais utilizado quando temos mais capacidade de processamento disponível.

    Por fim, um outro tipo comum de cross validation é o Leave One Out Cross Validation (LOOCV). Neste método uma observação é deixada de lado e um modelo treina com o restante delas. O processo se repete para todas as observações.

Na parte prática vamos fazer alguns exemplos de cada um destes tipos de resampling.

Faça download do material sobre resampling com R

Abraços.
Weslley Moura

Anúncios