Análise multi-objetivo de Pareto para avaliar métricas de machine learning

Luis Guilherme Ribeiro
4 min readJun 26, 2021

Um dos paradigmas na hora da escolha de modelos machine learning é saber qual a melhor métrica a se comparar. Porém, em alguns casos temos duas ou três métricas que se demonstram relevantes.

Considerando isso, neste artigo vou mostrar como avaliar várias métricas ao mesmo tempo, utilizando à análise multi-objetivo de Pareto.

A análise multi-objetivo de Pareto, também conhecida como "fronteira ótima de Pareto", se trata de uma comparação de dois ou mais objetivos, com diferentes valores a fim de obter os melhores desempenhos em termos de vários objetivos. Em machine learning, é comum comparar à acurácia dos modelos. Com esta análise é possível comparar à acurácia, sensibilidade e precisão, ao mesmo tempo.

Fronteira ótima de Pareto

Ao considerar a otimização de múltiplos objetivos, a fronteira ótima de Pareto é o conjunto de pontos onde um objetivo não pode ser melhorado sem prejuízo de outro. Esses pontos também são chamados de "não dominados".

Em contraste, pontos que não estão na fronteira de Pareto, ou pontos “dominados”, representam pontos onde é possível melhorar um ou mais objetivos sem perda de desempenho de outro objetivo.

Função da fronteira ótima de Pareto

Agora, vamos definir a função para identificar os pontos que estão na fronteira de Pareto. Primeiramente, assumimos que todos os pontos estão na fronteira. Então usamos dois loops para mudar o status dos pontos que não pertencem fronteira de Pareto. O loop externo (‘i’) pega todos os pontos e compara com todos os outros (a comparação é feita usando o loop interno, ‘j’). Para qualquer ponto ‘i’, se qualquer outro ponto é pelo menos tão bom em todos os objetivos e é melhor em um, esse ponto ‘i’ é conhecido como ‘dominado’ e não pertence a fronteira de Pareto, fazendo que com loop interno seja parado. Quando o ponto ‘i’, não é dominado por nenhum ponto ‘j’, indica que este é um ponto ótimo, e pertence a fronteira de Pareto.

Abaixo segue o código da função:

Aplicando na prática

Agora, vamos realizar um simples experimento para entendermos melhor a aplicação desta análise.

Primeiramente, vamos gerar uma base de dados sintética, em seguida vamos avaliar os seguintes algoritmos: K-Nearest Neighborhood (KNN), Support Vector Machine (SVM), Random Forest (RF), Multi-Layer Perceptron (MLP), Logistic Regression (LR), Classification and Regression Decision Tree (CART) e Naive Bayes (NB).

Umas das métricas mais visadas na área de machine learning é a acurácia, porém existe uma dificuldade em obter modelos com alta perfomance em acurácia sem sofrer de overfitting. Portanto neste experimento vamos considerar as métricas de acurácia e o overfitting (em termos de acurácia). Caso queira entender melhor como avaliar o overfitting, clique aqui.

Abaixo segue o código do experimento:

Na figura abaixo temos o gráfico de barras gerado no experimento. Conseguimos perceber que alguns modelos foram melhor em termos de acurácia e outros em termos de overfitting. Mas de modo geral, é difícil dizer quais modelos foram dominantes ao avaliar as duas métricas ao mesmo tempo.

Gráfico de comparação de acurácia e overfitting

Agora, na figura abaixo temos o gráfico da fronteira de Pareto. É possível destacar os modelos que foram dominantes (ótimos de Pareto), formando assim a famosa "fronteira ótima de Pareto".

Gráfico da fronteira de Pareto

Como visto no gráfico acima, os modelos RF e LR foram aqueles que na análise multi-objetiva em termos de acurácia e overfitting, se demostraram dominantes. Já os demais modelos (KNN, CART, SVM, PE e NB) foram os dominados.

Portanto, neste caso se fossemos escolher os modelos em termos de multi-objetivo, seriam RF e LR. Um destaque interessante é que o RF foi dominante devido sua performance em termos de acurácia, e o LR em termos de overfitting.

Conclusões

Sabendo que é difícil encontrar um modelo que é superior em todas as métricas, a análise multi-objetivo de Pareto se torna fundamental na hora da escolha dos modelos.

Quando vários modelos estiverem na fronteira de Pareto, é necessário escolher aquele que é superior na métrica mais relevante para o problema em questão.

Importante ressaltar que com esta análise é possível avaliar N métricas ao mesmo tempo, no entanto só é possível a visualização gráfica para duas (2D) ou três (3D) métricas.

Referências

[1]: Michael Allen (2018). Python for healthcare modelling and data science. https://pythonhealthcare.org/tag/pareto-front/

[2]: Luís Guilherme Ribeiro (2021). Como avaliar overfitting de um modelo machine learning. https://luisguicomp.medium.com/como-avaliar-o-overfitting-de-um-modelo-machine-learning-51e339fac214

--

--