Machine Learning: guia sobre regressões - Parte 1

Guilherme Hiroshi
Data Hackers
Published in
7 min readJan 7, 2021

Entendendo, de forma simples, os diversos algoritmos de regressão. Desde o mais básico: regressão linear simples, até os mais avançados: árvore de decisão e floresta aleatória.

Machine Learning ou, em português, aprendizado de máquina, nasceu com a necessidade de automatizar processos computacionais que acabam demandando muito tempo e impossibilitando a análise por pessoas.

Após o “Inverno da IA” - momento de perda de investimentos na área de inteligência artificial, que durou de 1960 até meados de 1980 -, grandes avanços e investimentos surgiram nessa área, muito por causa do aumento no uso de técnicas de ML.

Entretanto, tais técnicas já existiam há anos, mas com o aumento de dados produzidos por nós, os algoritmos se faziam mais eficientes em um número grande de informações a serem processadas.

Mas aonde posso ter um exemplo de uso de Machine Learning?

Seu uso é amplo e é presente até no seu dia a dia. Aqueles e-mails que vão direto para a lixeira são só uma parte dos que você recebe todo dia, uma grande quantia nem chega à sua caixa de entrada, pois as empresas donas do serviços de e-mail possuem algoritmos que reconhecem e classificam os e-mails como spam ou normais mesmo. Mas esse assunto de classificação de determinados dados fica para um tópico futuro, onde falarei sobre algoritmos de Classificação.

O que são modelos de regressão?

Imagine que você possua dados sobre diversas casas vendidas, esses dados contém a área do terreno, número de quartos, banheiros etc. E, é claro, o preço das mesmas. E você precisa criar um modelo de Machine Learning que indique o preço de casas que ainda não estão nos seus dados.

São exatamente nesses problemas de “descobrir um número” - seja ele um preço, uma medida, uma idade ou qualquer outro tipo de dado numérico - que a regressão é usada. E a forma como esses valores são previstos varia de algoritmo para algoritmo e, nesse artigo, apresentarei alguns deles.

Modelos de Regressão

Regressão Linear Simples

Para problemas menos comuns e mais intuitivos, a Regressão Linear Simples é ótima para se começar. Voltando ao exemplo do preço das casas mas, dessa vez, teremos só uma variável independente: o m². Por isso que é chamado de “simples”, pois só trabalha com problemas de uma variável independente e uma dependente, o que é bem menos comum no dia a dia.

Esse algoritmo calcula uma linha que será ajustada pelos dados, e servirá de base para futuras previsões. Na Figura 1 temos os dados dispersos no gráfico, onde o eixo X é o m² e o eixo Y é o preço do imóvel.

Figura 1 - Exemplo de gráfico de regressão linear simples com a linha ajustada.

Pra começar, vamos ver a equação para a regressão linear (Figura 2). Essa equação ajudará a prever novos valores, pois depois que o modelo estiver pronto (escolhido a reta ideal), ele saberá o β0 (a constante, que pode ser interpretada como o valor de Y por onde a reta passa em X = 0) e o β1 (que é o acréscimo de valor para cada X + 1) e só precisará do valor de X. Mas antes disso, veremos como ele descobre a melhor reta.

Figura 2 - Equação da regressão linear.

Para saber como será essa linha, o modelo usa a fórmula dos Mínimos Quadrados Ordinários (Figura 3). Onde ele quer minimizar a soma dos erros para cada ponto. A melhor reta será a que se encaixar melhor aos dados, tendo o erro como o menor possível.

Figura 3- Passo a passo de como chegar à fórmula dos Mínimos Quadrados Ordinários.

Já a Figura 4 mostra como são encontrados os valores de Ŷ (valor com base na reta) e Y (o valor real para aquele dado).

Figura 4 - Ŷ e Y para um dado qualquer “i”.

E, para título de curiosidade, na linguagem Python podemos descobrir qual é o coeficiente do valor X e a constante (Figura 5) - usando a pacote sklearn - com o código a seguir:

print(linear_regressor.coef_)print(linear_regressor.intercept_)
Figura 5 - valor de 9.312 para o coeficiente e 26.780 para a constante, ambos de um problema específico.

E pronto! Com a constante e o coeficiente descobertos, o algoritmo já pode prever o valor para novas casas apresentadas, mas com uma só variável. Agora vamos ver um algoritmo que se assemelha mais ao mundo real, onde há muitas variáveis.

Regressão Linear Múltipla

Como o próprio nome diz, esse modelo se encaixa em problemas com múltiplas variáveis (x1, x2, …, xn), onde cada um deles influencia no resultado da variável dependente.

Entretanto, para que possamos visualizar como é um gráfico de Regressão Linear Múltipla, precisamos de um problema que tenha apenas duas variáveis independentes (x1 e x2). Uma vez que o máximo que conseguimos enxergar - em um gráfico - são 3 dimensões, nesse caso será 1 dimensão para a variável dependente (Y) e 2 dimensões para os x1e x2 (variáveis independentes) .

O exemplo que usaremos será quantas milhas por galão (MPG) que um carro faz, dependendo de seu peso (Weight) e a quantidade de cavalos (Horsepower).

No gráfico a seguir (Figura 6), são apresentados dados de diversos carros (os pontos azuis). A imagem abaixo representa o plano gerado pelas observações de carros anteriores e os eixos para cada variável.

Figura 6 - Source

A equação dessa regressão é praticamente igual a da Regressão Linear Simples, o que difere é o número de componentes (x1, x2, …, xn).

E como já dito, esse algoritmo pode ser usado para problemas de múltiplas variáveis. Entretanto, não será possível visualizar como estão dispersos os dados e como foi gerado o hiperplano moldado pelos mesmos.

E também existem formas - dependendo da linguagem e biblioteca usadas - de descobrir os valores de interceptação e de coeficientes. Cada variável x terá seu próprio coeficiente que, no caso do exemplo a cima, é a inclinação do plano visto daquele ângulo, como se o gráfico fosse visto em 2D

Regressão Polinomial

Aqui, é onde o “Linear” perde o espaço no nome do algoritmo. Logo, é quando o problema segue um perfil não-linear e que é mais comum de se achar.

Imagine que tenha um artesão que quer saber quantas peças artesanais irá produzir em um determinado tempo. Vamos partir de uma abordagem linear: ele produz 2 peças por hora. Então, depois de 12 horas, terá 24 produtos.

A Figura 7 apresenta a distribuição dos dados e a linha de ajuste a eles. Observe que o crescimento é linear, isso é, se ele trabalhar mais 3 horas, já sabemos que terá 6 produtos a mais, seguindo a equação Y = 2X.

Figura 7 - gráfico de produtos gerados por horas trabalhadas

Mas se abordarmos esse exemplo de forma mais realista, na qual sabemos que o artesão se cansará depois de uma longa jornada de trabalho. Sua produção irá diminuir e, com isso, os pontos não seguiriam um crescimento linear.

E é aí que entra o algoritmo de Regressão Polinomial. Ele segue o Teorema de Weirstrass, o qual afirma que dada uma função contínua em um intervalo de [a, b], existe um polinômio que terá uma curva capaz de se aproximar do formato da curva daquela função. E a obtenção desse polinômio é de extrema importância, uma vez que ele facilita a computação e a obtenção de diversos resultados para aquela função.

Com isso em mente, a regressão se utiliza de um polinômio de algum determinado grau - que pode ser escolhido - para facilitar a criação da reta que, neste caso, poderá ser uma curva que se moldará muito melhor aos dados.

Para exemplificar como será a diferença entre os dois ajustes dos dados, segue uma comparação. Onde o gráfico da esquerda mostra que uma reta foi moldada de forma a se aproximar o máximo possível dos dados - da mesma forma que a regressão linear - se utilizando da fórmula dos Mínimos Quadrados Ordinários. Com a abordagem correta, chegamos ao segundo gráfico, onde é uma curva que se molda e, dessa forma, se aproximar muito melhor aos dados. Quanto maior o grau do polinômio, melhor a curva será ajustada.

E qual o problema de se utilizar uma regressão linear nesses problemas?

Como pode ser visto no gráfico da esquerda, a reta poucas vezes passa por cima de um dado. Na maioria das vezes, se encontra com uma certa diferença. Essa diferença pode causar problemas na hora de se descobrir quantos produtos serão gerados para determinadas horas trabalhadas.

Aqui, temos 7,91 produtos produzidos para 6 horas trabalhadas, seguindo o gráfico linear.

Já aqui, temos 9,12 produtos para as mesmas 6 horas. E esse é o real valor e pode ser checado com os gráficos anteriores.

Essa diferença pode ser pequena, mas em problemas onde é necessária uma precisão nos resultados, esses erros precisam ser evitados.

Na parte 2, apresentarei mais três algoritmos, o Vetor Suporte de Regressão - SVR, a Árvore de decisão e Floresta Aleatória.

Créditos

--

--

Guilherme Hiroshi
Guilherme Hiroshi

Written by Guilherme Hiroshi

Estudante de engenharia na UTFPR e iniciando no mundo dos dados. Ensinando - aos poucos - o que aprende, e aprendendo com isso.