Aprendizado Supervisionado em Tarefas de Regressão

Ricardo Araujo
6 min readOct 20, 2020

--

Junto com problemas de classificação, regressão é uma das principais aplicações de Aprendizado de Máquina. O termo foi utilizado por Grancis Galton em 1886 para denotar o fênomeno estatístico de retorno à média, mas hoje o termo é frequentemente usado quando uma tarefa de predição tem atributo-alvo contínuo. Assim, por exemplo, enquanto rotular uma foto como sendo de um gato ou cachorro é uma tarefa de classificação, estimar o peso de um animal na foto é uma tarefa de regressão.

Vários modelos utilizados para classificação podem também ser usados para regressão e vice-versa, ainda que existam modelos que apenas suportam classificação (como uma árvore de decisão treinada com ID3) — mesmo um modelo que apenas permite regressão nativamente pode ser adaptado para classificação sem maiores problemas, mas o inverso nem sempre é verdade.

A contraparte do classificador linear e um dos modelos mais simples de regressão é o regressor linear. No classificador linear, a suposição intrínseca ao modelo é que os dados são linearmente separáveis. Para o regressor linear, a suposição é a de que os dados são linearmente relacionados — isto é, o atributo-alvo pode ser descrito como uma combinação linear dos demais atributos, como no exemplo abaixo:

y = w*x + w*x +w*x + c

Onde w₁, w₂, w₃ e c são os parâmetros do modelo. O treinamento deste modelo envolve encontrar valores para estes parâmetros de forma que o erro do modelo seja minimizado. Como na tarefa de classificação, usamos dados de treinamento para calcular o erro e ajustar os parâmetros e, finalizado o treinamento, usamos o modelo para predizer novos valores de y a partir dos valores de x. Considerando apenas um único atributo (x), abaixo temos um exemplo de regressão.

Exemplo de regressão. Dados estão em azul, resultado do modelo em vermelho

Como para um classificador, este é um problema de otimização e diversos algoritmos podem ser utilizados. As escolhas de métricas a serem otimizadas, porém, são diferentes das de uma tarefa de classificação. O motivo deve ser evidente: em uma tarefa de classificação, sabemos inequivocamente se o modelo errou ou não uma predição; em uma regressão, tal decisão binária é de pouca utilidade (se o modelo estiver retornado 20.001 quando o valor correto era 20.00, ele está errando?), mas podemos sempre calcular a magnitude do erro. Portanto, métricas de erro para regressão se preocupam em quantificar esta magnitude.

Há múltiplas métricas de erros que podem ser utilizadas. Em um extremo de simplicidade, podemos calcular o erro absoluto médio (MAE — mean absolute error). Para cada ponto, calculamos o erro absoluto subtraindo o valor desejado do valor predito, removemos o sinal resultante e calculamos a média dos resultados. A necessidade de remover o sinal é devido a erros poderem ser positivos ou negativos e tipicamente não queremos que estes se anulem no processo de soma.

y_i é o valor desejado, enquanto y_i com chapéu é o valor predito

MAE tem a vantagem de ser facilmente interpretável — é simples entender quando se diz que o erro médio absoluto é de 5kg, por exemplo. Porém, a função é descontínua no ponto mínimo e isso a torna inadequada para algumas técnicas de otimização, como descida de gradiente.

Uma métrica contínua muito usada é o Erro Quadrático Médio (RMSE — Root Mean Squared Error). Nele, elevamos ao quadrado a diferença entre o valor predito e o desejado, o que já garante que o resultado é sempre positivo. O efeito é uma função contínua e diferenciável, mas que dá mais peso a erros maiores, o que pode ou não ser desejável. Note que a raíz quadrada é utilizada primariamente para que o resultado seja representado na mesma unidade do problema original. Quando esta representação não é necessária, é comum remover a raíz, levando a métrica MSE.

Com o RMSE podemos usar o algoritmo canônico para regressão linear: o Método dos Mínimos Quadrados (OLS — Ordinary Least Squares). Este é um método analítico que encontra os parâmetros de forma a minimizar o RMSE e é ótimo sob certas suposições. Este site permite brincar com o OLS e observar como a mudança nos dados afeta o resultado.

É importante distinguir entre dois termos relacionados, mas diferentes. Uma métrica de avaliação é uma medida para avaliar o quão bom um modelo é. Estas métricas vão ser usadas ultimamente para julgar se o modelo é bom o suficiente para ser utilizado. Porém, não é necessário que a métrica de avaliação seja utilizada diretamente para o ajuste do modelo, seja por que não possui o formato adequado para os algoritmos de treinamento, seja por que há outros fatores que se deseja otimizar conjuntamente (e.g. tamanho do modelo).

Uma função de perda (loss function, ou apenas loss) é o termo mais geral para o que o algoritmo de treinamento está procurando otimizar (por padrão, minimizar). Naturalmente, é desejável que a loss tenha relação com como o modelo será avaliado, mas estas não precisam ser idênticas.

Em um caso simples, sabemos que o algoritmo OLS utiliza RMSE como loss, mas pode ser mais interessante usar MAE para avaliar o modelo depois que ele foi ajustado. Em casos mais complexos, a loss pode incorporar diversos parâmetros adicionais de regularização que são específicas do algoritmo de treinamento.

Em adição a MAE e RMSE, duas das métricas de avaliação mais utilizadas, há também suas variações relativas, que medem a variação percentual do erro em relação ao valor desejado. Por exemplo, se o valor desejado for de 5 e o predito for 4, temos que o erro absoluto relativo é de |5–4|/5 = 0,2 ou 20%. O uso do erro percentual dá origem ao Erro Absoluto Médio Percentual (MAPE — Mean Absolute Percentage Error) e sua contra-parte quadrática. Ainda que desejáveis por comunicarem de forma mais compreensível a magnitude do erro, um problema de usar métricas relativas é que temos que contornar a situação onde o valor desejado é zero, ou muito pequeno, o que leva a indefinições ou problemas de overflow.

Outra métrica bastante utilizada é o coeficiente de correlação entre o valor predito e o valor desejado. O coeficiente de correlação mede o quão fortemente duas variáveis estão (linearmente) correlacionadas, variando de -1 (negativamente correlacionadas) a +1 (positivamente correlacionadas), com 0 indicando nenhuma correlação. Deseja-se, naturalmente, algo mais próximo de +1.

O coeficiente de determinação, R², é também bastante utilizado e é dado pelo quadrado do coeficiente de correlação. Ao contrário deste último, não há indicação de se a correlação é negativa ou positiva, o que é útil se apenas se está interessado na existência da correlação.

Algo importante a notar é que o coeficiente de correlação assume uma relação linear entre as variáveis. Quando esta suposição é violada, o valor em si tem pouca utilidade. Isso é exemplificado pelo "Quarteto de Anscombe", quatro conjuntos de dados bastante diferentes que possuem mesmos valores para várias métricas estatísticas, incluindo coeficiente de correlação.

Quarteto de Anscombe. Fonte: Wikipedia

A presença de uma não-linearidade na relação entre valor predito e valor desejado indica um problema subjacente no modelo, que pode possuir algum viés para certos valores de dados. Pode-se observar isso com um gráfico de correlação (correlation plot) como os acima.

Vamos colocar em prática um regressor linear. Siga neste notebook.

--

--

Ricardo Araujo

Computer Science professor at UFPel. Machine Learning and Artificial Intelligence practitioner and researcher.