Como saber se uma curva de aprendizado do modelo SVM sofre viés ou variância?

Respostas:

13

Parte 1: Como ler a curva de aprendizado

Primeiro, devemos nos concentrar no lado direito do gráfico, onde existem dados suficientes para avaliação.

  • Se duas curvas estiverem "próximas uma da outra" e as duas, mas tiverem uma pontuação baixa. O modelo sofre de um problema de adaptação insuficiente (viés alto)

  • Se a curva de treinamento tem uma pontuação muito melhor, mas a curva de teste tem uma pontuação menor, ou seja, existem grandes lacunas entre as duas curvas. Então o modelo sofre de um problema de excesso de ajuste (Alta Variância)

Parte 2: Minha avaliação da trama que você forneceu

A partir da trama, é difícil dizer se o modelo é bom ou não. É possível que você tenha realmente um "problema fácil", um bom modelo pode atingir 90%. Por outro lado, é possível que você tenha realmente um "problema difícil" que a melhor coisa que podemos fazer é alcançar 70%. (Observe que você não pode esperar que tenha um modelo perfeito, digamos que a pontuação seja 1. O quanto você pode conseguir depende da quantidade de ruído em seus dados. Suponha que seus dados tenham muitos pontos de dados com recurso EXATO, mas com rótulos diferentes, não importa o que você faça, não será possível obter 1 na pontuação.)

Outro problema no seu exemplo é que 350 exemplos parecem muito pequenos em um aplicativo do mundo real.

Parte 3: Mais sugestões

Para entender melhor, você pode fazer as seguintes experiências para ajustar um ajuste excessivo e observar o que acontecerá na curva de aprendizado.

  • Selecione dados muito complicados, como dados MNIST, e ajuste com um modelo simples, diga modelo linear com um recurso.

  • Selecione um dado simples, como dados de íris, ajuste com um modelo de complexidade, como SVM.


Parte 4: Outros exemplos

Além disso, darei dois exemplos relacionados ao ajuste insuficiente e excessivo. Observe que isso não é uma curva de aprendizado, mas o desempenho diz respeito ao número de iterações no modelo de aumento de gradiente , em que mais iterações terão mais chances de super ajuste. O eixo x mostra o número de iterações e o eixo y mostra o desempenho, que é negativo Area Under ROC (quanto menor, melhor.)

A subparcela esquerda não sofre de ajuste excessivo (também não está ajustada, pois o desempenho é razoavelmente bom), mas a direita sofre de ajuste excessivo quando o número de iterações é grande.

insira a descrição da imagem aqui

Haitao Du
fonte
Obrigado hxd1011! Você concorda comigo se eu disser que meu modelo sofre uma pequena variação e um pequeno viés (já que a pontuação não é 1)?
Afke
Papie @ Eu acho que você modelo está bem ... 80% na pontuação não é ruim e duas curvas estão próximas. O único problema é que exemplos são de até 350, que podem ser muito pequenos em um aplicativo do mundo real.
Haitao Du
@ Papie Além disso, você não pode esperar que tenha um modelo perfeito, digamos que a pontuação seja 1. O quanto você pode conseguir depende da quantidade de ruído em seus dados. Suponha que seus dados tenham muitos pontos de dados com recurso EXATO, mas rótulos diferentes, não importa o que você faça, você não poderá atingir 1 na pontuação.
Haitao Du
11
Eu acho que o "80% no placar não é ruim" não é uma boa maneira de pensar sobre as coisas. Não há pontuação global boa, depende muito do problema que está sendo resolvido, mais especificamente, da relação sinal / ruído no processo e dos dados disponíveis. Você aponta isso na sua resposta, para que eu remova o comentário "nada mal".
Matthew Drury
1
@MatthewDrury Obrigado por sugestões, resposta revisada!
Haitao Du