O que é validação cruzada? Comparando modelos de aprendizado de máquina
Publicados: 2021-07-21A validação cruzada é uma ferramenta inestimável para cientistas de dados.
É útil para construir mais precisos aprendizado de máquina modelos e avaliar como eles funcionam em um conjunto de dados de teste independente.
A validação cruzada é fácil de entender e implementar, tornando-se um método obrigatório para comparar os recursos preditivos (ou habilidades) de diferentes modelos e escolher o melhor. É benéfico quando a quantidade de dados disponíveis é limitada e é uma ótima maneira de verificar como um modelo preditivo funciona na prática.
O que é validação cruzada?
A validação cruzada (CV) é uma técnica usada para avaliar um modelo de aprendizado de máquina e testar seu desempenho (ou precisão). Envolve a reserva de uma amostra específica de um conjunto de dados no qual o modelo não é treinado. Posteriormente, o modelo é testado nesta amostra para avaliá-lo.
A validação cruzada é usada para proteger um modelo de overfitting , especialmente se a quantidade de dados disponíveis for limitada. Também é conhecido como estimativa de rotação ou teste fora da amostra e é usado principalmente em configurações em que o objetivo do modelo é a previsão.
Você sabia? Um modelo é considerado "sobreajustado" se modela os dados de treinamento tão bem que afeta negativamente seu desempenho em novos dados.
Esse procedimento de reamostragem também é usado para comparar diferentes modelos de aprendizado de máquina e determinar como eles funcionam para resolver um problema específico. Em outras palavras, a validação cruzada é um método usado para avaliar a habilidade de modelos de aprendizado de máquina.
Simplificando, no processo de validação cruzada, a amostra de dados original é dividida aleatoriamente em vários subconjuntos. O modelo de aprendizado de máquina treina em todos os subconjuntos, exceto um. Após o treinamento, o modelo é testado fazendo previsões no subconjunto restante.
Em muitos casos, várias rodadas de validação cruzada são executadas usando diferentes subconjuntos e seus resultados são calculados para determinar qual modelo é um bom preditor.
Por que a validação cruzada é importante?
A validação cruzada é crucial quando a quantidade de dados disponíveis é limitada.
Suponha que você precise prever a probabilidade de um pneu de bicicleta furar. Para isso, você coletou dados sobre os pneus existentes: a idade do pneu, o número de milhas percorridas, o peso do piloto e se ele foi perfurado antes.
Para criar um modelo preditivo, você usará esses dados (históricos). Há duas coisas que você precisa fazer com esses dados – treinar o algoritmo e testar o modelo.
Você sabia? No aprendizado de máquina, um algoritmo e um modelo não são a mesma coisa. Um modelo é o que é aprendido pelo algoritmo de aprendizado de máquina.
Como você tem apenas uma quantidade limitada de dados disponíveis, seria ingênuo usar todos os dados no treinamento do algoritmo. Se você fizer isso, não terá mais dados para testar ou avaliar o modelo.
Reutilizar o conjunto de treinamento como conjunto de teste não é uma boa ideia, pois precisamos avaliar a precisão do modelo em dados nos quais ele não foi treinado. É porque o principal objetivo por trás do treinamento é preparar o modelo para trabalhar com dados do mundo real. E é improvável que seu conjunto de dados de treinamento contenha todos os pontos de dados possíveis que o modelo encontrará.
Uma ideia melhor seria usar os primeiros 75% (três blocos) dos dados como o conjunto de dados de treinamento e os últimos 25% (um bloco) como o conjunto de dados de teste . Isso permitirá que você compare quão bem diferentes algoritmos categorizaram os dados de teste.
Mas, claro, como você saberia que usar os primeiros 75% dos dados como conjunto de treinamento e os 25% restantes como conjunto de teste é o melhor caminho?
Em vez disso, você pode usar os primeiros 25% dos dados para teste; ou você pode usar o terceiro bloco de dados como o conjunto de dados de teste e o restante como o conjunto de dados de treinamento.
Dica: use o software de aprendizado de máquina para automatizar tarefas e fazer previsões precisas.
Como resultado, um tipo de validação cruzada chamada validação cruzada k-fold usa todas as (quatro) partes do conjunto de dados como dados de teste, uma de cada vez, e depois resume os resultados.
Por exemplo, a validação cruzada usará os três primeiros blocos dos dados para treinar o algoritmo e usará o último bloco para testar o modelo. Em seguida, ele registra o desempenho do modelo com os dados de teste.
Depois de registrar o desempenho ou a precisão, ele usará o 1º, 2º e 4º blocos de dados para treinar e o 3º bloco para testar. O processo continua até que todos os blocos sejam usados uma vez como dados de teste. A média de todos os resultados é calculada para avaliar o desempenho do modelo.
No exemplo acima, os dados foram divididos em quatro blocos. Portanto, essa validação cruzada é chamada de validação cruzada de 4 vezes . Se fosse dividido em dez blocos, seria uma validação cruzada de 10 vezes .
Em suma, a validação cruzada é útil para a seleção de modelos e facilita o exame de quão bem um modelo se generaliza para novos dados.
Em outras palavras, é útil determinar o erro de previsão de um modelo. Também é usado para comparar o desempenho ou a precisão de diferentes métodos de aprendizado de máquina, como máquina de vetor de suporte (SVM), K-nearest neighbor (KNN), regressão linear ou regressão logística.
Aqui estão mais algumas razões pelas quais os cientistas de dados adoram a validação cruzada:
- Permite que eles usem todos os dados sem sacrificar nenhum subconjunto (não é válido para o método de retenção)
- Revela a consistência dos dados e do algoritmo
- Ajuda a evitar overfitting e underfitting
A validação cruzada também é usada para ajustar o hiperparâmetros de um modelo de aprendizado de máquina por meio de uma técnica chamada validação cruzada de pesquisa de grade aleatória .
Tipos de validação cruzada
Os métodos de validação cruzada podem ser classificados em duas categorias: métodos exaustivos e métodos não exaustivos .
Como o nome sugere, métodos exaustivos de validação cruzada se esforçam para testar todas as maneiras possíveis de dividir a amostra de dados original em um conjunto de treinamento e um conjunto de teste. Por outro lado, métodos não exaustivos não computam todas as formas de particionar os dados originais em conjuntos de treinamento e avaliação.
Abaixo estão os cinco tipos comuns de validação cruzada.
1. Método de retenção
O método holdout é uma das abordagens básicas de validação cruzada em que o conjunto de dados original é dividido em duas partes – dados de treinamento e dados de teste. É um método não exaustivo e, como esperado, o modelo é treinado no conjunto de dados de treinamento e avaliado no conjunto de dados de teste.
Na maioria dos casos, o tamanho do conjunto de dados de treinamento é duas vezes maior que o conjunto de dados de teste, o que significa que o conjunto de dados original é dividido na proporção de 80:20 ou 70:30. Além disso, os dados são embaralhados aleatoriamente antes de serem divididos em conjuntos de treinamento e validação.
No entanto, existem algumas desvantagens nesse método de validação cruzada. Como o modelo é treinado em uma combinação diferente de pontos de dados, ele pode exibir resultados variados toda vez que for treinado. Além disso, nunca podemos ter certeza absoluta de que o conjunto de dados de treinamento escolhido representa todo o conjunto de dados.

Se a amostra de dados original não for muito grande, também há uma chance de que os dados de teste contenham algumas informações cruciais, que o modelo não reconhecerá, pois não estão incluídas nos dados de treinamento.
No entanto, a técnica de validação cruzada de validação é ideal se você estiver com pressa para treinar e testar um modelo e tiver um grande conjunto de dados.
2. Validação cruzada de K-fold
O método de validação cruzada k-fold é uma versão aprimorada do método de validação. Ele traz mais consistência à pontuação do modelo, pois não depende de como escolhemos o conjunto de dados de treinamento e teste.
É um método de validação cruzada não exaustivo e, como o nome sugere, o conjunto de dados é dividido em k número de divisões e o método de validação é executado k vezes.
Por exemplo, se o valor de k for igual a dois, haverá dois subconjuntos de tamanhos iguais. Na primeira iteração, o modelo é treinado em uma subamostra e validado na outra. Na segunda iteração, o modelo é treinado no subconjunto que foi usado para validar na iteração anterior e testado no outro subconjunto. Essa abordagem é chamada de validação cruzada de 2 vezes .
Da mesma forma, se o valor de k for igual a cinco, a abordagem é chamada de método de validação cruzada de 5 vezes e envolverá cinco subconjuntos e cinco iterações. Além disso, o valor de k é arbitrário. Geralmente, o valor de k é definido como 10. Se você estiver confuso sobre a escolha de um valor, o mesmo é recomendado.
O procedimento de validação cruzada k-fold começa com a divisão aleatória do conjunto de dados original em k número de dobras ou subconjuntos. Em cada iteração, o modelo é treinado nos k-1 subconjuntos de todo o conjunto de dados. Depois disso, o modelo é testado no k-ésimo subconjunto para verificar seu desempenho.
Este processo é repetido até que todas as k-folds tenham servido como conjunto de avaliação. Os resultados de cada iteração são calculados em média, e isso é chamado de precisão de validação cruzada . A precisão da validação cruzada é usada como uma métrica de desempenho para comparar a eficiência de diferentes modelos.
A técnica de validação cruzada k-fold geralmente produz modelos menos tendenciosos, pois todos os pontos de dados do conjunto de dados original aparecerão no conjunto de treinamento e teste. Esse método é ideal se você tiver uma quantidade limitada de dados.
No entanto, como esperado, esse processo pode ser demorado porque o algoritmo precisa executar novamente k vezes do zero. Isso também significa que é preciso k-1 vezes mais computação do que o método holdout.
3. Validação cruzada k-fold estratificada
Como estamos embaralhando dados aleatoriamente e dividindo-os em dobras na validação cruzada k-fold, há uma chance de acabarmos com subconjuntos desequilibrados. Isso pode fazer com que o treinamento seja tendencioso, o que resulta em um modelo impreciso.
Por exemplo, considere o caso de um problema de classificação binária em que cada um dos dois tipos de rótulos de classe compreende 50% dos dados originais. Isso significa que as duas classes estão presentes na amostra original em proporções iguais. Por uma questão de simplicidade, vamos nomear as duas classes A e B.
Ao embaralhar os dados e dividi-los em dobras, há uma grande chance de terminarmos com uma dobra na qual a maioria dos pontos de dados são da classe A e apenas alguns da classe B. Esse subconjunto é visto como um subconjunto desequilibrado e pode levar à criação de um classificador impreciso.
Para evitar tais situações, as dobras são estratificadas usando um processo chamado de estratificação . Na estratificação, os dados são reorganizados para garantir que cada subconjunto seja uma boa representação de todo o conjunto de dados.
No exemplo acima de classificação binária, isso significaria que é melhor dividir a amostra original de modo que metade dos pontos de dados em uma dobra seja da classe A e o restante da classe B.
4. Validação cruzada sem saída
A validação cruzada leave-p-out (LpOCV) é um método exaustivo no qual o número p de pontos de dados é retirado do número total de amostras de dados representadas por n.
O modelo é treinado em np pontos de dados e posteriormente testado em p pontos de dados. O mesmo processo é repetido para todas as combinações possíveis de p da amostra original. Finalmente, os resultados de cada iteração são calculados para atingir a precisão da validação cruzada.
5. Validação cruzada sem exclusão
A abordagem de validação cruzada leave-one-out (LOOCV) é uma versão simplificada do LpOCV. Nesta técnica de validação cruzada, o valor de p é definido como um. Portanto, este método é muito menos exaustivo. No entanto, a execução deste método é cara e demorada, pois o modelo deve ser ajustado n vezes.
Existem outras técnicas de validação cruzada, incluindo validação de subamostragem aleatória repetida, validação cruzada aninhada e validação cruzada de série temporal.
Aplicações de validação cruzada
A principal aplicação da validação cruzada é avaliar o desempenho de modelos de aprendizado de máquina. Isso ajuda a comparar métodos de aprendizado de máquina e determinar qual é o ideal para resolver um problema específico.
Por exemplo, suponha que você esteja considerando k-vizinhos mais próximos (KNN) ou análise de componentes principais (PCA) para realizar o reconhecimento óptico de caracteres. Nesse caso, você pode usar a validação cruzada para comparar os dois com base no número de caracteres classificados incorretamente por cada método.
A validação cruzada também pode ser usada na seleção de recursos para selecionar os recursos que mais contribuem para a saída de previsão.
Limitações da validação cruzada
O principal desafio da validação cruzada é a necessidade de recursos computacionais excessivos, especialmente em métodos como k-fold CV. Como o algoritmo precisa ser executado novamente do zero por k vezes, ele requer k vezes mais computação para ser avaliado.
Outra limitação é aquela que envolve dados não vistos. Na validação cruzada, o conjunto de dados de teste é o conjunto de dados não visto usado para avaliar o desempenho do modelo. Em teoria, essa é uma ótima maneira de verificar como o modelo funciona quando usado para aplicações do mundo real.
Mas nunca pode haver um conjunto abrangente de dados não vistos na prática, e nunca se pode prever o tipo de dados que o modelo pode encontrar no futuro.
Suponha que um modelo seja construído para prever o risco de um indivíduo contrair uma doença infecciosa específica. Se o modelo for treinado com dados de um estudo de pesquisa envolvendo apenas um grupo populacional específico (por exemplo, mulheres na faixa dos 20 anos), quando aplicado à população em geral, o desempenho preditivo pode diferir drasticamente em comparação com a precisão da validação cruzada .
Além disso, a validação cruzada produzirá resultados significativos somente se as tendências humanas forem controladas no conjunto de amostras original.
Validação cruzada para o resgate
A construção de modelos com validação cruzada é um excelente método para criar aplicativos de aprendizado de máquina com maior precisão ou desempenho. Técnicas de validação cruzada como a validação cruzada k-fold possibilitam estimar o desempenho de um modelo sem sacrificar a divisão de teste.
Eles também eliminam os problemas causados por uma divisão de dados de desequilíbrio; em resumo, eles podem permitir que os cientistas de dados confiem menos na sorte e mais nas iterações.
Há um subconjunto de aprendizado de máquina que tenta imitar o funcionamento do cérebro humano. É chamado de aprendizado profundo e inteligência geral artificial, se possível, exigiria suas habilidades de tomada de decisão.