Estimação de erro em classificação com machine learning

Além de construir um modelo é importante saber como avaliá-lo, conheça aqui alguns métodos

Felipe Augusto
Luna
8 min readMay 6, 2020

--

Photo by Suad Kamardeen on Unsplash

No contexto de aprendizado de máquina precisamos lembrar que estamos aprendendo sobre uma população, mas temos acesso à apenas uma amostra dela. Por exemplo, pensando que queremos aprender como classificar fake news, nós teremos acesso à uma base de notícias, entretanto dificilmente conseguiríamos acesso à todas as notícias do mundo para conseguir realizar essa classificação.

Ou seja, há erro no aprendizado.

Os métodos de avaliação normalmente não tem relação com o classificador, de forma que é possível explorá-los mesmo sem conseguir construir um classificador (mas tendo os dados sobre sua performance, obviamente).

Exceção-Classificador Bayesiano

No contexto de classificação, se sabemos as densidades de probabilidade condicionais das classes¹, este classificador é ótimo, ou seja, fornece o menor erro, já que estamos nos baseando nas probabilidades empíricas dos dados. E conseguimos calcular esse erro facilmente.

  1. P(x|c), ou seja, qual a probabilidade de uma variável assumir um valor específico dado que a classe é uma classe específica.

Como avaliar um classificador?

Em outros classificadores dificilmente conseguiríamos uma expressão analítica para calcular o erro, ou seja, uma função simples.

Caso tenhamos regras de treinamento consistentes, o que caracterizaria um comportamento de função, ainda existe a dependência do tamanho da amostra para se aproximar à taxa de erro do classificador Bayesiano.

No caso da classificação supervisionada devemos separar um conjunto para treinamento, com o qual iremos aprender, e um conjunto de testes, que será usado para estimar o erro. Além disso, as amostras de treinamento preferivelmente deveriam ter algumas características: grandes e independentes.

Sempre lembrando que trabalhamos com amostras, então mesmo as avaliações de erro, contém erro.

Viés x Variância

Antes de mostrarmos os métodos, é importante entender dois conceitos que são bem importantes na avaliação de alguns deles:

  • Viés é a tendência para alguma classificação de maneira incorreta, ele é contrário à acurácia, ou seja, quanto mais viés, menos acurácia;
  • Variância, é o quanto os valores são discrepantes nos experimentos, o seu contrário é a precisão.
Viés e Variância em Portal Spectral Services

1. Resubstituição

Neste método toda a amostra original é usada para treinamento e teste, isso acaba fornecendo uma estimativa otimista do erro, já que o teste e treinamento estão sendo realizados no mesmo conjunto de dados.

Esse método também não revela a presença de overfitting, que seria um bom desempenho com os dados de treinamento e um mal desempenho com dados novos.

Quanto pior a amostra de treinamento, pior a estimativa.

E resumindo, essa é a pior opção e não é utilizada normalmente, sendo citada apenas para a introdução aos métodos de estimação de erro e comparação com métodos superiores.

2. Holdout

Uma parte da amostra é usada para treinamento e o restante para teste (não necessariamente 50%). Normalmente escolhemos uma porcentagem maior para o conjunto de treinamento.

Um problema é que diferentes divisões darão diferentes estimativas, ou seja, isso nos dá uma incerteza sobre qual seria a estimativa mais próxima da realidade.

Os métodos a seguir tem a intenção de repetir o Holdout de diferentes formas, de forma a melhorar a estimativa, a diferença será como essa repetição acontecerá.

Holdout on http://www.ebc.cat/

3. Leave-one-out

Como o próprio nome diz: deixar um de fora. O método consiste em realizar o treinamento com n-1 dados e testar com o restante, esse processo é repetido n vezes, cada vez deixando um dado diferente de fora para teste.

  • A estimativa de erro é a média do erro de cada rodada
  • Este método é exaustivo, ou seja, testa todas as possibilidades.
  • Estimativa menos enviesada, ou seja, estará bem próxima da realidade
  • Alta variância entre os n testes (erro assume apenas 0 e 1)
  • Alto custo computacional (n treinamentos e testes de classificadores)
Leave-one-out on http://www.ebc.cat/

4. Leave-p-out

Esse caos é parecido com com leave-one-out, mas nesse caos deixa p instâncias para teste e treina as demais.

  • Exaustivo
  • Mais caro que o leave-one-out
Leave-p-out on http://www.ebc.cat/

5. k-fold cross validation (validação cruzada k-vezes)

Pode ser interpretado como uma mistura do leave-one-out com o leave-p-out, já que ele usa partes k que são independentes.

O funcionamento é bem fácil de ser entendido:

  • Divida a amostra original em k partes (k < n)
  • Treina com k-1 partes, testa com a que sobrou
  • Repetir o processo k vezes, cada vez deixando uma parte diferente para teste
  • O erro do classificador será o cálculo da média
K-fold on http://www.ebc.cat/

Algumas observações sobre o k-fold cross validation:

  • Menor viés que o holdout
  • Menor custo que o leave-one-out (k classificadores)
  • Menor variância que o leave-one-out
  • Não exaustivo

Validação cruzada estratificada

A ideia é manter a proporção de classes do conjunto original nas k partes, por exemplo: se no conjunto original temos 80% da classe 1 e 20% da classe 2, todas as k partes devem ter essa proporção.

K-fold estratificado

Validações cruzadas repetidas

Nesse caso são realizadas várias validações cruzadas embaralhando as instâncias em cada realização e aplicando a estratificação novamente se for o caso.

Nesse caso as partes já não são independentes como no caso da validação cruzada simples.

Subamostragem aleatória

Também conhecida como múltiplos hold-outs ou validação cruzada Monte Carlo. É semelhante à validação cruzada, mas as instâncias são sorteadas sem reposição em cada holdout/fold e com reposição entre cada holdout.

Reposição é a possibilidade de repetição de elementos quando refeito o processo.

Você pode definir os tamanhos das amostrar e número de holdouts.

Desvantagem: algumas instâncias podem nunca serem utilizadas e outras utilizadas várias vezes.

Subamostragem aleatória em http://www.ebc.cat/

Bootstrap

Gera várias amostras com reposição em cada holdout e entre holdouts de tamanho m, m ≤> n, ou seja, o tamanho das amostras podem ser até maior que o data set.

Treina com uma e testa com a outra.

  • Variância menor;
  • Computacionalmente caro dependendo do número de experimentos e do tamanho das amostras de treino e teste
  • Útil quando a amostra original é pequena
  • Maior controle sobre o viés

Medidas de desempenho de um classificador

Matriz de confusão

Relaciona as classes reais com as classes preditas pelo classificador. Ela nos mostra o erro de confundir uma classe com a outra (daí o nome matriz de confusão).

No caso da classificação binária, por exemplo, entre uma notícia ser fake news (1) ou não (0) existem dois tipos de erro:

  • Falso positivo (False positive — FP): o classificador diz que é 1 quando na verdade é 0;
  • Falso negativo (False Negative — FN): o classificador diz que é 0 quando na verdade é 1.

E dois tipos de acerto:

  • Verdadeiro positivo;
  • Verdadeiro negativo.
Matriz de confusão em mc.ai

Sendo assim, temos duas medidas principais, que são complementares:

  • Acurácia: (TP + TN)/m;
  • Erro: (FP + FN)/m (ou 1 - acurácia).

Sendo m a quantidade de instâncias.

E temos outras medidas:

  • Taxa de Falsa Aceitação (FAR), taxa de falsos positivos sobre o número de instâncias: FP/m
  • Taxa de Falsa Rejeição (FRR), taxa de falsos negativos sobre o número de instâncias: FN/m
  • Sensibilidade ou recall ou taxa de TP: TP/P, número de verdadeiros identificados em relação ao número total de verdadeiros
  • Especificidade: TN/N, de todos os negativos, qual a proporção que eu classifiquei como negativos
  • Taxa de Falso Positivo: FP/N = 1-especificidade
  • Precisão ou Valor Predito Positivo (PPV): TP/(TP + FP)
  • Valor Preditivo Negativo (NPV): TN(TN + FN)
Matriz de confusão grande — um pouco mais confusa — em mc.ai

Entretanto existem outras medidas mais robustas que utilizam as medidas acima, como a Medida F.

Algumas dessas medidas são contrárias, de forma que a melhoria de uma pode significar a piora de outra. Dependendo da área que estamos trabalhando podemos querer priorizar algumas delas, por exemplo: se estamos classificando pacientes doentes e não doentes, podemos querer uma alta sensibilidade mesmo prejudicando a especificidade, de forma a aumentar as chances de identificá-los.

Espero que não tenha ficado confuso

Curvas ROC — Receiver Operating Characteristic

Essas curvas ajudam a escolher um limiar entre as medidas descritas anteriormente e a comparar diferentes classificadores.

Curvas ROC de diferentes classificadores

O gráfico acima demonstra no eixo X a taxa de falsos positivos e no eixo Y a taxa de verdadeiros positivos. Podemos notar que o caso ideal seria a curva verde, onde todos os verdadeiros positivos seriam detectados sem falsos positivos, mas o que acontece com os modelos é algo mais parecido com a curva azul, e por último temos a curva vermelha que seria um classificador aleatório, apenas para comparação.

Além da classe, é importante ressaltar que precisamos que o classificador nos dê um score, dessa forma podemos visualizar em qual limiar temos determinada taxa de TP e FP e assim definir qual limiar queremos 👌.

AUC — Area Under the Curve

A área sob a curva é uma boa medida para conseguirmos avaliar os classificadores com as curvas ROC, quanto maior a área, melhor o classificador, sempre em busca do ponto ideal (0, 1).

Caso não tenhamos os scores a curva ROC forneceria apenas um ponto (0, 0), mas ainda podemos calcular com a AUC balanceada:

AUC = (sensibilidade - especificidade)/2

Curvas ROC — Escolha de limiar

Como citamos, as curvas ROC ajudam na escolha de um limiar, mas essa escolha pode ter diferentes critérios, que podem ser escolhidos de acordo com a aplicação.

Youden

Esse critério tem como regra escolhe o ponto com maior distância no eixo Y em relação à linha diagonal do classificador aleatório, no nosso caso a linha vermelha.

01

Nesse critério escolhemos o ponto mais próximo do ponto perfeito (0, 1), utilizando um raio ao redor dele para essa detecção.

É muito comum esses critérios darem limiares muito próximos.

Curvas ROC-like

Outras curvas podem ser utilizadas com outras métricas, sendo que essas métricas devem ser opostas evidenciando a relação entre elas e ajudando na escolha de diferentes limiares.

O ponto ótimo nesse caso vai depender das métricas utilizadas.

Taxa de rejeição

Alguns classificadores podem decidir não classificar algumas instâncias, em casos que há muita incerteza.

taxa de rejeição = número de rejeitados / total de instâncias

Quanto maior a taxa de rejeição, menor a taxa de erro sobre os que foram classificados, dessa forma podemos também gerar uma curva relacionando essas duas medidas: erro de classificação vs taxa de rejeição.

Isso é tudo pessoal 😃

Gostou do conteúdo?

Siga a Luna no Medium. E não se esqueça de deixar alguns aplausos 👏🏽Qualquer dúvida ou sugestão é só deixar nos comentários!

--

--