Regressão

Concluído

Os modelos de regressão são treinados para prever valores numéricos de rótulo com base em dados de treinamento que incluem recursos e rótulos conhecidos. O processo de treinamento de um modelo de regressão (ou qualquer modelo de machine learning supervisionado) envolve várias iterações nas quais você usa um algoritmo apropriado (geralmente com algumas configurações parametrizadas) para treinar um modelo, avaliar o desempenho preditivo do modelo e refinar o modelo repetindo o processo de treinamento com algoritmos e parâmetros diferentes até atingir um nível aceitável de precisão preditiva.

Diagrama mostrando o processo de treinamento e avaliação de um modelo supervisionado.

O diagrama mostra quatro elementos-chave do processo de treinamento de modelos de machine learning supervisionados:

  1. Divida os dados de treinamento (aleatoriamente) para criar um conjunto de dados com o qual treinar o modelo, mantendo um subconjunto dos dados que você usará para validar o modelo treinado.
  2. Usar um algoritmo para ajustar os dados de treinamento a um modelo. No caso de um modelo de regressão, use um algoritmo de regressão, como regressão linear.
  3. Use os dados de validação retidos para testar o modelo prevendo rótulos dos recursos.
  4. Compare os rótulos reais conhecidos no conjunto de dados de validação com os rótulos previstos pelo modelo. Em seguida, agregue as diferenças entre os valores de rótulo previstos e reais para calcular uma métrica que indica a precisão do modelo previsto para os dados de validação.

Após cada treinamento, validação e iteração de avaliação, você pode repetir o processo com diferentes algoritmos e parâmetros até que uma métrica de avaliação aceitável seja alcançada.

Exemplo – regressão

Vamos explorar a regressão com um exemplo simplificado no qual treinaremos um modelo para prever um rótulo numérico (y) com base em um único valor de recurso (x). A maioria dos cenários reais envolve vários valores de recurso, o que adiciona complexidade, mas o princípio é o mesmo.

Para nosso exemplo, vamos manter o cenário de vendas de sorvetes que discutimos anteriormente. Para nosso recurso, consideraremos a temperatura (vamos supor que o valor seja a temperatura máxima em um determinado dia), e o rótulo que queremos treinar um modelo para prever é a quantidade de sorvetes vendidos naquele dia. Começaremos com alguns dados históricos que incluem registros de temperaturas diárias (x) e vendas de sorvetes (y):

Diagrama de um termômetro. Diagrama de sorvetes.
Temperatura (x) Vendas de sorvete (y)
51 1
52 0
67 14
65 14
70 23
69 20
72 23
75 26
73 22
81 30
78 26
83 36

Treinar um modelo de regressão

Começaremos dividindo os dados e usando um subconjunto dele para treinar um modelo. Aqui está o conjunto de dados de treinamento:

Temperatura (x) Vendas de sorvete (y)
51 1
65 14
69 20
72 23
75 26
81 30

Para obter um insight de como esses valores x e y podem se relacionar uns com os outros, podemos mostra-los em gráficos como coordenadas ao longo de dois eixos, dessa forma:

Diagrama de um gráfico de dispersão mostrando x e y.

Agora estamos prontos para aplicar um algoritmo aos nossos dados de treinamento e ajustá-lo a uma função que aplica uma operação a x para calcular y. Um desses algoritmos é a regressão linear, que funciona derivando uma função que produz uma linha reta através das interseções dos valores x e y, minimizando a distância média entre a linha e os pontos mostrados no gráfico, dessa forma:

Diagrama do gráfico de dispersão com a linha de regressão adicionada.

A linha é uma representação visual da função na qual a inclinação da linha descreve como calcular o valor de y de um determinado valor de x. A linha intercepta o eixo x em 50, portanto, quando x é 50, y é 0. Como você pode ver nos marcadores de eixo no gráfico, a linha inclina para que cada aumento de 5 ao longo do eixo x resulte em um aumento de 5 no eixo y. Portanto, quando x é 55, y é 5, quando x é 60, y é 10 e assim por diante. Para calcular um valor de y de um determinado valor de x, a função simplesmente subtrai 50. Em outras palavras, a função pode ser expressa dessa forma:

f(x) = x-50

Você pode usar essa função para prever o número de sorvetes vendidos em um dia com uma temperatura determinada. Por exemplo, suponha que a previsão do tempo nos diga que amanhã será de 77 ºF (25 ºC). Podemos aplicar nosso modelo para calcular 77-50 e prever que venderemos 27 sorvetes amanhã.

Qual é a precisão do nosso modelo?

Avaliar um modelo de regressão

Para validar o modelo e avaliar o quão bem ele prevê, retivemos alguns dados para os quais sabemos o valor do rótulo (y). Aqui estão os dados que foram retidos:

Temperatura (x) Vendas de sorvete (y)
52 0
67 14
70 23
73 22
78 26
83 36

Podemos usar o modelo para prever o rótulo de cada uma das observações nesse conjunto de dados com base no valor do recurso (x) e, em seguida, comparar o rótulo previsto (ŷ) com o valor de rótulo real conhecido (y).

Usar o modelo que treinamos anteriormente, que encapsula a função f(x) = x-50, resulta nas seguintes previsões:

Temperatura (x) Vendas reais (y) Vendas previstas (ŷ)
52 0 2
67 14 17
70 23 20
73 22 23
78 26 28
83 36 33

Podemos mostrar no gráfico os rótulos previstos e os reais em relação aos valores de recurso como esse:

Diagrama de um gráfico de dispersão mostrando os valores previstos e reais.

Os rótulos previstos são calculados pelo modelo para que estejam na linha de função, mas há uma variação entre os valores ŷ calculados pela função e os valores y reais do conjunto de dados de validação, que é indicado no gráfico como uma linha entre os valores ŷ e y que mostra a distância entre a previsão e o valor real.

Métricas de avaliação de regressão

Com base nas diferenças entre os valores previstos e reais, você pode calcular algumas métricas comuns que são usadas para avaliar um modelo de regressão.

MAE (Erro Médio Absoluto)

A variação nesse exemplo indica quantos sorvetes cada previsão errou. Não importa se a previsão estava acima ou abaixo do valor real (portanto, por exemplo, -3 e +3 indicam uma variação de 3). Essa métrica é conhecida como o erro absoluto para cada previsão e pode ser resumida para todo o conjunto de validação como o MAE (erro absoluto médio).

No exemplo do sorvete, a média dos erros absolutos (2, 3, 3, 1, 2 e 3) is 2,33.

EQM (erro quadrático médio)

A métrica do erro médio absoluto leva em conta todas as discrepâncias entre rótulos previstos e reais igualmente. No entanto, seria preferível ter um modelo consistentemente errado por uma pequena quantidade do que um que produz menos erros, mas maiores. Uma maneira de produzir uma métrica que "amplifica" erros maiores elevando ao quadrado os erros individuais e calculando a média dos valores quadrados. Essa métrica é chamada de EQM (erro quadrático médio).

Em nosso exemplo do sorvete, a média dos valores absolutos quadrados (que são 4, 9, 9, 1, 4 e 9) é 6.

REQM (Raiz do Erro Quadrático Médio)

O erro quadrático médio ajuda a levar em conta a magnitude dos erros, mas como ele eleva ao quadrado os valores de erro, a métrica resultante não representa mais a quantidade medida pelo rótulo. Em outras palavras, podemos dizer que o EQM do nosso modelo é 6, mas isso não mede sua precisão em termos do número de sorvetes que foram previstos de forma errada; 6 é apenas uma pontuação numérica que indica o nível do erro nas previsões de validação.

Se quisermos medir o erro em termos do número de sorvetes, precisamos calcular a raiz quadrada do EQM, que produz uma métrica chamada raiz do erro quadrático médio. Nesse caso, √6, que é 2,45 (sorvetes).

Coeficiente de determinação (R2)

Todas as métricas até agora comparam a discrepância entre os valores previstos e os reais para avaliar o modelo. No entanto, na realidade, há uma variação aleatória natural nas vendas diárias de sorvetes que o modelo leva em conta. Em um modelo de regressão linear, o algoritmo de treinamento se ajusta em uma linha reta que minimiza a variação média entre a função e os valores de rótulo conhecidos. O coeficiente de determinação (mais comumente conhecido como R2 ou R ao quadrado) é uma métrica que mede a proporção de variação nos resultados de validação que podem ser explicados pelo modelo, em oposição a algum aspecto anômalo dos dados de validação (por exemplo, um dia com um número de vendas de sorvetes altamente incomum devido a um festival local).

O cálculo do R2 é mais complexo do que das métricas anteriores. Ele compara a soma das diferenças quadradas entre rótulos previstos e os reais com a soma das diferenças quadradas entre os valores de rótulo reais e a média dos valores de rótulo reais, dessa forma:

R2 = 1- ∑(y-ŷ)2 ÷ ∑(y-ȳ)2

Não se preocupe muito se isso parece complicado. A maioria das ferramentas de machine learning pode calcular a métrica para você. O ponto importante é que o resultado é um valor entre 0 e 1 que descreve a proporção de variação explicada pelo modelo. Em termos simples, quanto mais próximo de 1 esse valor for, melhor será o ajuste dos dados de validação do modelo. No caso do modelo de regressão do sorvete, o R2 calculado com base nos dados de validação é 0,95.

Treinamento iterativo

As métricas descritas acima são comumente usadas para avaliar um modelo de regressão. Na maioria dos cenários do mundo real, um cientista de dados usará um processo iterativo para treinar e avaliar repetidamente um modelo, variando:

  • Seleção e preparação de recursos (escolhendo quais recursos incluir no modelo e cálculos aplicados a eles para ajudar a garantir um ajuste melhor).
  • Seleção de algoritmo (exploramos a regressão linear no exemplo anterior, mas há muitos outros algoritmos de regressão)
  • Parâmetros de algoritmo (configurações numéricas para controlar o comportamento do algoritmo, mais precisamente chamados de hiperparâmetros para diferenciá-los dos parâmetros x e y).

Após várias iterações, o modelo que resulta na melhor métrica de avaliação aceitável para o cenário específico é selecionado.