Um modelo equipado demais é necessariamente inútil?


25

Suponha que um modelo tenha 100% de precisão nos dados de treinamento, mas 70% de precisão nos dados de teste. O argumento a seguir é verdadeiro sobre esse modelo?

É óbvio que este é um modelo com excesso de ajuste. A precisão do teste pode ser aprimorada, reduzindo o sobreajuste. Mas, esse modelo ainda pode ser um modelo útil, pois possui uma precisão aceitável para os dados de teste.


17
Se 70% é aceitável em aplicações específicas, concordo com você.
Richard Hardy

6
Concordo plenamente com @RichardHardy. Tomemos, por exemplo, uma floresta aleatória: geralmente, por construção, o desempenho insatisfatório (não o desempenho fora da bolsa) é próximo de 100%, o que faz com que seja excessivamente ajustado. Ainda assim, o menor desempenho avaliado fora da bolsa ou em conjuntos de teste / validação pode ser alto o suficiente para torná-lo um modelo útil.
Michael M

11
@ Metariat Por que não? Essa precisão é obtida no conjunto de testes que não é usado na fase de treinamento.
Hossein

3
@Metariat, Esse argumento pode derrubar a maior parte da prática estatística, por exemplo, o estimador OLS no modelo linear Normal, teste para igualdade de uma amostra média com um valor hipotético e o que não. O interessante é que o argumento não depende da adaptação do modelo à amostra de treinamento. É válido também para modelos de roupas íntimas e qualquer modelo em geral. Isso não está correto? t
Richard Hardy

4
Eu não chamaria esse modelo de sobreajustado. Um modelo sobreajustado é estabelecido comparando o desempenho da validação com o desempenho do teste. Mesmo assim, apenas se o desempenho do teste for consideravelmente menor do que o aceitável, possivelmente catastroficamente. O desempenho do treinamento não significa nada.
Firebug

Respostas:


32

Eu acho que o argumento está correto. Se 70% for aceitável em uma aplicação específica, o modelo será útil mesmo que esteja sobreajustado (em geral, independentemente de estar sobreajustado ou não).

Embora o equilíbrio entre super ajuste e baixo ajuste preocupe com a otimização (procurar uma solução ótima), ter um desempenho satisfatório é sobre suficiência (o modelo está executando o suficiente para a tarefa?). Um modelo pode ser suficientemente bom sem ser o ideal.

Edit: após os comentários de Firebug e Matthew Drury no âmbito do OP, acrescentarei que para julgar se o modelo está sobreajustado sem saber que o desempenho da validação pode ser problemático. O Firebug sugere comparar a validação versus o desempenho do teste para medir a quantidade de sobreajuste. No entanto, quando o modelo fornece 100% de precisão no conjunto de treinamento sem fornecer 100% de precisão no conjunto de teste, é um indicador de possível superajuste (especialmente no caso de regressão, mas não necessariamente na classificação).


Você pediu um exemplo: pegue o código de uma rede neural no conjunto de dados da íris em stats.stackexchange.com/a/273930/2958 e tente set.seed(100)uma ilustração como o fenômeno descrito aqui e set.seed(15)pelo contrário. Talvez melhor dizer "um indicador de possível overfitting"
Henry

É sempre possível que um modelo atinja 100% de precisão tanto no trem quanto no teste e não tenha se superado?
Rika

11
@ Breeze, acho que você poderia pedir isso em um tópico separado (e vincular a este por contexto, se necessário).
Richard Hardy

Acabei de fazer aqui é o link
Rika

25

No meu projeto anterior com detecção de fraude no cartão de crédito, intencionalmente queremos ajustar demais os dados / código codificado para lembrar casos de fraude. (Observe que a super adaptação de uma classe não é exatamente o problema geral de superajuste mencionado pelo OP.) Esse sistema possui falsos positivos relativamente baixos e satisfaz nossas necessidades.

Então, eu diria que o modelo com excesso de ajuste pode ser útil em alguns casos.


5
Essa resposta é bastante interessante, pois apresenta um caso de uso. Eu acho que com "codificado para lembrar" @ hxd1011 significa que o modelo garantiu que cada um dos casos de fraude reportados levasse a um "sinalizador de fraude" e que não fossem suavizados ou interpolados por uma função adequada, digamos, . Algo assim, certo?
IcannotFixThis

@IcannotFixThis sim. De fato, tentamos muitas outras maneiras de controlar o falso positivo. Mas tentar exagerar nos casos de fraude funcionou mal.
Haitao Du

3
No seu caso, sua função de avaliação está sobreponderando TPR e subponderando FPR, por exemplo, pontuação F_ com >> 1. (Agora eu sei por que minha empresa de cartão de débito é tão chato, eles sinalizar qualquer coisinha, mesmo com defeito cartão-scanners nos postos de gasolina)βββ
SMCI

3
Isso pode ser irritante, mas é milhares de vezes menos irritante do que arruinar o seu financiamento, porque alguém nefasto recebeu as informações do seu cartão.
Matthew Drury

12

Talvez: cuidado. Quando você diz que a precisão de 70% (independentemente da medida) é boa o suficiente para você, parece que você está assumindo que os erros são distribuídos aleatoriamente ou uniformemente.

Mas uma das maneiras de observar o sobreajuste é que isso acontece quando uma técnica de modelo permite (e seu processo de treinamento incentiva) prestar muita atenção às peculiaridades no conjunto de treinamento. Indivíduos da população em geral que compartilham essas peculiaridades podem ter resultados altamente desequilibrados.

Então, talvez você acabe com um modelo que diz que todos os cães vermelhos têm câncer - por causa dessa peculiaridade particular nos seus dados de treinamento. Ou que as pessoas casadas entre 24 e 26 anos têm quase a garantia de registrar reivindicações de seguro fraudulentas. Sua precisão de 70% deixa muito espaço para bolsos de assuntos estarem 100% errados porque seu modelo está super ajustado.

(Não estar com excesso de ajuste não é uma garantia de que você não terá muitas previsões erradas. Na verdade, um modelo insuficiente terá várias previsões ruins, mas com o excesso de ajuste você sabe que está aumentando o efeito de peculiaridades nos dados de treinamento. .)


Obrigado. Você quer dizer que é possível que essa precisão de 70% seja obtida nas peculiaridades dos dados de treinamento que também estão disponíveis nos dados de teste? Não podemos julgar com base na precisão dos dados do teste? Eu acho que as peculiaridades dos dados de treinamento que estão disponíveis nos dados de teste devem ser aprendidas durante o treinamento.
Hossein

11
Se eu entendo você, seria o contrário: o ajuste excessivo às peculiaridades deu a você alta precisão no treinamento. O motivo pelo qual você obtém uma precisão menor nos testes é que essas peculiaridades não se aplicam ao seu conjunto de dados geral. Mas é claro que seus conjuntos de treinamento e teste - mesmo que você faça a validação cruzada, o que ajuda - podem ser peculiares em relação à sua população. Nesse caso, seus resultados de teste / validação não vão prever bem o seu desempenho.
317 Wayne

Você está certo de que o conjunto de testes pode ser peculiar em relação à população, mas isso não é específico para os modelos superalimentados. Todas as nossas avaliações sofrem com isso e não temos outra escolha senão confiar no conjunto de testes como proxy da verdadeira população.
Hossein

É verdade que não é exclusivo de modelos com excesso de ajuste, mas é amplificado em um modelo com excesso de ajuste. Quero dizer, por definição, que o modelo está super ajustado porque claramente sofre de enfatizar demais as peculiaridades.
Wayne

7

Não, eles podem ser úteis, mas depende do seu objetivo. Várias coisas vêm à mente:

  1. Fββ1

  2. Esse classificador pode ser realmente útil em um conjunto . Poderíamos ter um classificador com pesos normais, um que superexpanda o TPR, um que superexponha o FNR. Então, mesmo a simples votação de uma regra de três, ou a média, proporcionará uma AUC melhor do que qualquer melhor classificador. Se cada modelo usar hiperparâmetros diferentes (ou conjuntos de treinamento ou arquiteturas de modelo subamostra), isso comprará ao conjunto alguma imunidade de super ajuste.

  3. Da mesma forma, para antispam, antifraude ou pontuação de crédito em tempo real , é aceitável e desejável usar uma hierarquia de classificadores. Os classificadores de nível 1 devem avaliar muito rápido (ms) e não há problema em ter uma alta taxa de retorno de retorno ; quaisquer erros que cometam serão detectados por classificadores de nível superior mais precisos, com mais recursos e mais lentos ou, por fim, por revisores humanos. Exemplo óbvio: evite manchetes de notícias falsas de aquisições de contas no Twitter como o "ataque a bomba da Casa Branca mata três" de 2013, afetando US $ bilhões em negociações dentro de ms após a publicação. Não há problema em o classificador de nível 1 sinalizar isso como positivo para spam; vamos permitir que demore um pouco para determinar (automaticamente) a verdade / falsidade dos noticiários sensacionais, mas não verificados.


2

Não estou negando que um modelo com excesso de ajuste ainda possa ser útil. Mas lembre-se de que esses 70% podem ser uma informação enganosa. O que você precisa para julgar se um modelo é útil ou não é o erro fora da amostra , não o erro de teste (o erro fora da amostra não é conhecido, portanto, precisamos calculá-lo usando um conjunto de testes oculto ) e esses 70% são apenas a boa aproximação.

Para garantir que estamos na mesma página na terminologia após o comentário de @RichardHardy, vamos definir o erro de teste como o erro obtido ao aplicar o modelo no conjunto de testes cegos. E o erro fora da amostra é o erro ao aplicar o modelo a toda a população.

A aproximação do erro fora da amostra depende de duas coisas: o próprio modelo e os dados.

  • Um modelo "ideal" gera uma precisão (teste) que dificilmente depende dos dados; nesse caso, seria uma boa aproximação. "Independentemente" dos dados, o erro de previsão seria estável.

  • Porém, a precisão de um modelo com excesso de ajustes depende muito dos dados (como você mencionou 100% no conjunto de treinamento e 70% no outro conjunto). Portanto, ao aplicar a outro conjunto de dados, a precisão pode estar em algum lugar abaixo de 70% (ou superior) e podemos ter más surpresas. Em outras palavras, esses 70% estão dizendo o que você acredita que seja, mas não é.


11
Como o conjunto de testes usado que obtém 70% de precisão não é visto na fase de treinamento, não é uma boa estimativa do erro fora da amostra? Acho que a diferença entre erro de treinamento (100%) e erro de teste (70%) não é uma boa indicação da diferença entre erro fora da amostra e erro de teste. É possível que o modelo com excesso de ajuste tenha 70% de precisão no mundo real, enquanto é 100% preciso para os dados de treinamento. Espero que o erro de treinamento seja menor que o erro de teste, pois os dados de treinamento são usados ​​para gerar o modelo, mas os dados de teste não são vistos durante o treinamento.
Hossein

5
Eu acho que você pode ter confundido o conjunto de validação e o conjunto de testes e seus respectivos erros. O erro de teste é o erro fora da amostra . Embora o erro de validação seja uma medida otimista de um modelo selecionado, o erro de teste não é. O erro de teste é uma estimativa imparcial de como o modelo será executado em uma nova amostra da mesma população. Podemos estimar a variação do erro de teste, portanto, estamos bem sabendo apenas o erro de teste , desde que o conjunto de testes não seja muito pequeno. @Hossein
Richard Hardy

3
Você pode elaborar a diferença entre erro fora da amostra e erro de teste? Pelo meu entendimento, ambos são os erros encontrados ao aplicar o modelo a amostras não usadas para treiná-lo. A única diferença possível que vejo é ao usar dados de séries temporais; os dados fora da amostra devem ser de períodos posteriores, mas essas perguntas não fazem menção a isso.
Nuclear Wang

11
Na minha perspectiva, erro de teste é o erro obtido ao aplicar o modelo em um conjunto cego, é uma aproximação do erro fora da amostra, que é o erro obtido ao aplicar o modelo em toda a população. E não é a mesma coisa, a informação valiosa é o erro fora da amostra. E quando o modelo é super adaptado, o erro de teste não é estável e podem ocorrer más garantias nos outros conjuntos de dados.
Metariat

4
@ Metariat, você está certo de que o erro de teste é uma estimativa e pode ser diferente de um conjunto de testes para outro. No entanto, como mencionei antes, não há razão para esperar que o erro de teste subestime o erro verdadeiro (em média, não o faz). Portanto, ao coletar uma amostra de teste grande o suficiente, podemos limitar o erro de teste com um nível de confiança desejado em um intervalo desejado. Agora, mais praticamente, talvez você deva definir o erro de teste editando sua resposta para garantir que não haja mal-entendido sobre o que você quer dizer ao contrastar o erro de teste com o erro fora da amostra.
Richard Hardy
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.