Underfitting é um cenário em ciência de dados em que um modelo não consegue capturar com precisão a relação entre os inputs e outputs, gerando uma alta taxa de erro tanto no conjunto de treinamento quanto em dados não vistos.
O underfitting ocorre quando um modelo é simples demais, o que pode ser causado por tempo de treinamento insuficiente, poucos atributos de input ou regularização excessiva.
Assim como o overfitting, um modelo com underfitting não consegue identificar a tendência dominante nos dados, o que resulta em erros durante o treinamento e baixo desempenho do modelo. Se um modelo não generaliza bem para novos dados, ele não pode ser aproveitado em tarefas de classificação ou previsão A capacidade de generalizar para novos dados é justamente o que torna possível o uso diário de algoritmos de aprendizado de máquina para fazer previsões e classificações.
Alto viés e baixa variância são bons indicadores de underfitting. Como esse comportamento pode ser observado durante o uso do conjunto de treinamento, modelos com underfitting geralmente são mais fáceis de identificar do que os com overfitting.
Simplificando, o overfitting é o oposto do underfitting: ocorre quando o modelo é treinado em excesso ou tem complexidade demais, resultando em altas taxas de erro nos dados de teste. O overfitting é mais comum do que o underfitting, que normalmente ocorre como tentativa de evitá-lo, por meio de um processo chamado “parada antecipada” (early stopping).
Se o treinamento insuficiente ou a baixa complexidade levam ao underfitting, então uma estratégia lógica de prevenção seria aumentar o tempo de treinamento ou adicionar inputs mais relevantes. No entanto, se o modelo for treinado em excesso ou receber atributos demais, pode acabar sofrendo de overfitting, apresentando baixo viés e alta variância (ou seja, o dilema viés-variância). Nesse cenário, o modelo estatístico se ajusta demais aos dados de treinamento, perdendo a capacidade de generalizar bem para novos pontos de dados. Vale destacar que alguns tipos de modelos são mais propensos ao overfitting do que outros, como árvores de decisão ou KNN.
Identificar overfitting pode ser mais difícil do que detectar underfitting porque, ao contrário do underfitting, os dados de treinamento apresentam alta precisão em um modelo com overfitting. Para avaliar a precisão de um algoritmo, normalmente se utiliza uma técnica chamada validação cruzada k-fold.
Na validação cruzada k-folds, os dados são divididos em k subconjuntos de tamanhos iguais, conhecidos como "folds". Um dos k-folds será usado como conjunto de teste, também chamado de conjunto de retenção ou conjunto de validação, enquanto os demais folds serão utilizados para treinar o modelo. Este processo se repete até que cada dobra tenha atuado como uma dobra de resistência. Após cada avaliação, uma pontuação é mantida e, ao término de todas as iterações, as pontuações são calculadas para avaliar o desempenho geral do modelo.
O cenário ideal ao treinar um modelo é encontrar o equilíbrio entre overfitting e underfitting. Identificar esse “ponto ideal” entre os dois permite que modelos de aprendizado de máquina façam previsões com precisão.
Como conseguimos detectar o underfitting com base no conjunto de treinamento, conseguimos auxiliar melhor na identificação da relação dominante entre os inputs e outputs logo no início. Ao manter uma complexidade de modelo adequada, podemos evitar o underfitting e obter previsões mais precisas. Abaixo estão algumas técnicas que podem ajudar a reduzir o underfitting:
A regularização é geralmente usada para reduzir a variância de um modelo aplicando uma penalidade aos parâmetros de input com coeficientes maiores. Existem diferentes métodos, como regularização L1, regularização Lasso, dropout e outros, que ajudam a reduzir ruídos e valores discrepantes dentro de um modelo. No entanto, se os atributos dos dados se tornarem homogêneos demais, o modelo não consegue identificar a tendência dominante, levando ao underfitting. Ao diminuir o nível de regularização, é possível introduzir mais complexidade e variação no modelo, permitindo seu treinamento adequado.
Como mencionado anteriormente, interromper o treinamento cedo demais também pode resultar em um modelo com underfitting. Portanto, estender a duração do treinamento pode evitar esse problema. No entanto, é importante estar atento ao excesso de treinamento e, consequentemente, ao overfitting. Encontrar o equilíbrio entre esses dois cenários é essencial.
Em qualquer modelo, determinados atributos são usados para prever um resultado específico. Se não houver atributos preditivos suficientes, devem ser introduzidos mais atributos, ou atributos com maior relevância. Por exemplo, em uma rede neural, você pode adicionar mais neurônios ocultos ou, em uma random forest, adicionar mais árvores. Esse processo injeta mais complexidade no modelo, proporcionando melhores resultados de treinamento.