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
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.
- 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.
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á.
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)
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
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
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.
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.
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.
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)
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.
Curvas ROC — Receiver Operating Characteristic
Essas curvas ajudam a escolher um limiar entre as medidas descritas anteriormente e a comparar 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.
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!