Construir um modelo de aprendizado de máquina não se trata apenas de alimentar os dados, existem muitas deficiências que afetam a precisão de qualquer modelo. Overfitting em é uma das deficiências do Aprendizado de Máquina que prejudica a precisão e também o desempenho do modelo. Os seguintes tópicos são abordados neste artigo:
- O que é overfitting no aprendizado de máquina?
- Exemplos de overfitting
- Sinal vs Ruído
- O que é Underfitting?
- Como detectar o sobreajuste?
- Como evitar overfitting no aprendizado de máquina
- O que é Goodness Of Fit?
- A compensação entre polarização e variância
O que é overfitting no aprendizado de máquina?
Diz-se que um modelo estatístico é super ajustado quando o alimentamos com muito mais dados do que o necessário. Para torná-lo compreensível, imagine tentar caber em roupas grandes.
Quando um modelo ajusta mais dados do que realmente precisa, ele começa a capturar os dados com ruído e os valores imprecisos nos dados. Como resultado, a eficiência e a precisão do modelo diminuem. Vamos dar uma olhada em alguns exemplos de sobreajuste para entender como isso realmente acontece.
Exemplos de overfitting
Exemplo 1
Se tomarmos um exemplo de simples regressão linear , treinar os dados é descobrir o custo mínimo entre a linha de melhor ajuste e os pontos de dados. Ele passa por uma série de iterações para descobrir o melhor ajuste ideal, minimizando o custo. É aqui que o overfitting entra em cena.
A linha vista na imagem acima pode fornecer um resultado muito eficiente para um novo ponto de dados. No caso de overfitting, quando executamos o algoritmo de treinamento no conjunto de dados, permitimos que o custo seja reduzido a cada número de iteração.
Executando isso por muito tempo significará um custo reduzido, mas também ajustará os dados ruidosos do conjunto de dados. O resultado seria semelhante ao gráfico abaixo.
Isso pode parecer eficiente, mas não é. O objetivo principal de um algoritmo como regressão linear é encontrar uma tendência dominante e ajustar os pontos de dados de acordo. Mas, neste caso, a linha se ajusta a todos os pontos de dados, o que é irrelevante para a eficiência do modelo em prever resultados ideais para novos pontos de dados de entrada.
Agora, consideremos um exemplo mais descritivo com a ajuda de uma definição de problema.
Exemplo 2
Declaração do problema: Vamos considerar que queremos prever se um jogador de futebol conseguirá uma vaga em um clube de futebol de nível 1 com base em seu desempenho atual na liga de nível 2.
Agora imagine, treinamos e ajustamos o modelo com 10.000 desses jogadores com resultados. Quando tentamos prever o resultado no conjunto de dados original, digamos que obtivemos uma precisão de 99%. Mas a precisão em um conjunto de dados diferente é de cerca de 50%. Isso significa que o modelo não generaliza bem a partir de nossos dados de treinamento e dados não vistos.
É assim que se parece o overfitting. É um problema muito comum no aprendizado de máquina e até mesmo na ciência de dados. Agora vamos entender o sinal e o ruído.
Sinal vs Ruído
Na modelagem preditiva, o sinal se refere ao verdadeiro padrão subjacente que ajuda o modelo a aprender os dados. Por outro lado, o ruído é irrelevante e dados aleatórios no conjunto de dados. Para entender o conceito de ruído e sinal, tomemos um exemplo da vida real.
Suponhamos que desejemos modelar idade versus alfabetização entre adultos. Se amostrarmos uma parte muito grande da população, encontraremos uma relação clara. Este é o sinal, enquanto o ruído interfere no sinal. Se fizermos o mesmo com uma população local, o relacionamento ficará turvo. Isso seria afetado por outliers e aleatoriedade, por exemplo, um adulto foi para a escola cedo ou algum adulto não podia pagar pela educação, etc.
Falando sobre ruído e sinal em termos de Aprendizado de Máquina, um bom algoritmo de Aprendizado de Máquina separará automaticamente os sinais do ruído. Se o algoritmo for muito complexo ou ineficiente, ele pode aprender o ruído também. Conseqüentemente, overfitting do modelo. Vamos também entender o underfitting no aprendizado de máquina.
O que é Underfitting?
Para evitar overfitting, poderíamos interromper o treinamento em um estágio anterior. Mas também pode fazer com que o modelo não seja capaz de aprender o suficiente com os dados de treinamento, o que pode dificultar a captura da tendência dominante. Isso é conhecido como underfitting. O resultado é o mesmo que overfitting, ineficiência na previsão de resultados.
Agora que entendemos o que realmente é underfitting e overfitting no Machine Learning, vamos tentar entender como podemos detectar o overfitting no Machine Learning.
Como detectar overfitting?
O principal desafio do overfitting é estimar a precisão do desempenho do nosso modelo com novos dados. Não seríamos capazes de estimar a precisão até que realmente a testássemos.
Para resolver esse problema, podemos dividir o conjunto de dados inicial em conjuntos de dados de teste e treinamento separados. Com essa técnica, podemos realmente aproximar o desempenho de nosso modelo com os novos dados.
Vamos entender isso com um exemplo, imagine que obtivemos uma precisão de mais de 90% no conjunto de treinamento e 50% no conjunto de teste. Então, automaticamente seria uma bandeira vermelha para o modelo.
Outra maneira de detectar overfitting é começar com um modelo simplista que servirá de referência.
Com essa abordagem, se você tentar algoritmos mais complexos, será capaz de entender se a complexidade adicional vale a pena para o modelo ou não. Também é conhecido como Teste de navalha de Occam , basicamente escolhe o modelo simplista no caso de desempenho comparável no caso de dois modelos. Embora detectar overfitting seja uma boa prática,mas existem várias técnicas para evitar o sobreajuste também. Vamos dar uma olhada em como podemos evitar overfitting no aprendizado de máquina.
Como evitar overfitting no aprendizado de máquina?
Existem várias técnicas para evitar overfitting no Machine Learning, listadas abaixo.
1. Validação Cruzada
Um dos recursos mais poderosos para evitar / prevenir overfitting é a validação cruzada. A ideia por trás disso é usar os dados de treinamento inicial para gerar divisões de teste de minitrem e, em seguida, usar essas divisões para ajustar seu modelo.
Em uma validação k-fold padrão, os dados são particionados em subconjuntos k também conhecidos como dobras. Depois disso, o algoritmo é treinado iterativamente em k-1 dobras enquanto usa as dobras restantes como o conjunto de teste, também conhecido como dobra de validação.
A validação cruzada nos ajuda a ajustar os hiperparâmetros apenas com o conjunto de treinamento original. Basicamente, ele mantém o conjunto de testes separadamente como um conjunto de dados realmente invisível para selecionar o modelo final. Portanto, evitando overfitting completamente.
2. Treinamento com mais dados
Essa técnica pode não funcionar sempre, como também discutimos no exemplo acima, onde o treinamento com uma quantidade significativa de população ajuda o modelo. Basicamente, ajuda o modelo a identificar melhor o sinal.
Mas, em alguns casos, o aumento de dados também pode significar alimentar mais ruído para o modelo. Quando estamos treinando o modelo com mais dados, temos que ter certeza de que os dados estão limpos e livres de aleatoriedade e inconsistências.
3. Removendo recursos
Embora alguns algoritmos tenham uma seleção automática de recursos. Para um número significativo de pessoas que não têm uma seleção de recursos embutida, podemos remover manualmente alguns recursos irrelevantes dos recursos de entrada para melhorar a generalização.
Uma maneira de fazer isso é derivar uma conclusão sobre como um recurso se encaixa no modelo. É bastante semelhante a depurar o código linha por linha.
Caso um recurso não seja capaz de explicar a relevância no modelo, podemos simplesmente identificar esses recursos. Podemos até usar algumas heurísticas de seleção de recursos como um bom ponto de partida.
4. Parada Antecipada
Quando o modelo está em treinamento, você pode realmente medir o desempenho do modelo com base em cada iteração. Podemos fazer isso até um ponto em que as iterações melhoram o desempenho do modelo. Depois disso, o modelo superajustes os dados de treinamento à medida que a generalização enfraquece após cada iteração.
Então, basicamente, parar antecipadamente significa interromper o processo de treinamento antes que o modelo passe do ponto em que começa a ajustar os dados de treinamento. Esta técnica é usada principalmente em aprendizado profundo .
5. Regularização
Basicamente, significa forçar artificialmente seu modelo a ser mais simples usando uma gama mais ampla de técnicas. Depende totalmente do tipo de aluno que estamos usando. Por exemplo, podemos podar um , use um abandono em um rede neural ou adicione um parâmetro de penalidade à função de custo na regressão.
Muitas vezes, a regularização também é um hiperparâmetro. Isso significa que também pode ser ajustado por meio de validação cruzada.
6. Conjunto
Essa técnica basicamente combina previsões de diferentes modelos de aprendizado de máquina. Dois dos métodos mais comuns de montagem estão listados abaixo:
O ensacamento tenta reduzir a chance de overfitting dos modelos
c ++ classificar os números em ordem crescente
Boosting tenta melhorar a flexibilidade preditiva de modelos mais simples
Embora ambos sejam métodos de conjunto, a abordagem parte totalmente de direções opostas. Bagging usa modelos básicos complexos e tenta suavizar suas previsões, enquanto o boosting usa modelos básicos simples e tenta aumentar sua complexidade agregada.
O que é Goodness Of Fit?
Na modelagem estatística, a qualidade do ajuste se refere a quão próximos os resultados ou valores previstos correspondem aos valores observados ou verdadeiros.Um modelo que aprendeu ruído em vez do sinal é superaquecido porque se ajusta ao conjunto de dados de treinamento, mas terá uma eficiência inferior com o novo conjunto de dados.
A compensação entre enviesamento e variação
Tanto a variância quanto o viés são formas de erro de previsão em . A compensação entre alta variância e alta tendência é um conceito muito importante em estatística e aprendizado de máquina. Este é um conceito que afeta todos os algoritmos de aprendizado de máquina supervisionados.
A compensação de polarização-variância tem um impacto muito significativo na determinação da complexidade, subajuste e sobreajuste de qualquer modelo de aprendizado de máquina.
Viés
Não é nada além da diferença entre os valores previstos e os valores reais ou verdadeiros no modelo. Nem sempre é fácil para o modelo aprender com sinais bastante complexos.
Vamos imaginar encaixando um regressão linear para um modelo com dados não lineares. Não importa o quão eficientemente o modelo aprenda as observações, ele não modelará as curvas de forma eficiente. É conhecido como underfitting.
Variância
Refere-se à sensibilidade do modelo a conjuntos específicos nos dados de treinamento. Um algoritmo de alta variação produzirá um modelo bizarro que é drasticamente diferente do conjunto de treinamento.
Imagine um algoritmo que se ajusta ao modelo irrestrito e super flexível, ele também aprenderá com o ruído no conjunto de treinamento que causa o sobreajuste.
Compensação de polarização-variância
Um algoritmo de aprendizado de máquina não pode ser percebido como um método único para treinar o modelo; em vez disso, é um processo repetitivo.
Algoritmos de baixa variância-alta polarização são menos complexos, com uma estrutura simples e rígida.
Eles vão treinar os modelos que são consistentes, mas imprecisos em média.
Isso inclui algoritmos lineares ou paramétricos, como regressão, etc.
Os algoritmos de polarização de alta variância e baixa tendem a ser mais complexos, com uma estrutura flexível.
Eles vão treinar os modelos que são inconsistentes, mas precisos em média.
Isso inclui algoritmos não lineares ou não paramétricos, como , etc.
Isso nos leva ao final deste artigo, onde aprendemos sobre ajuste no aprendizado de máquina e sobre várias técnicas para evitá-lo. Espero que você tenha esclarecido tudo o que foi compartilhado com você neste tutorial.
Se você achou este artigo sobre “Overfitting In Machine Learning” relevante, verifique o uma empresa de aprendizagem online confiável com uma rede de mais de 250.000 alunos satisfeitos espalhados por todo o mundo.
Estamos aqui para ajudá-lo em cada etapa de sua jornada e criar um currículo projetado para estudantes e profissionais que desejam ser um . O curso foi desenvolvido para dar a você uma vantagem inicial na programação Python e treiná-lo para os conceitos básicos e avançados do Python, juntamente com vários gostar , etc.
Se você tiver alguma dúvida, fique à vontade para fazer todas as suas perguntas na seção de comentários de “Overfitting In Machine Learning” e nossa equipe terá prazer em responder.