Aprenda sobre Regressão Linear Múltipla com Python e Scikit-Learn (2023)

A regressão linear múltipla é uma técnica estatística utilizada para analisar a relação entre uma variável dependente e várias variáveis independentes. Neste artigo, vamos explorar em detalhes o conceito de regressão linear múltipla e como implementá-la usando a biblioteca Scikit-Learn em Python.

Introdução ao Aprendizado de Máquina

Antes de mergulharmos na regressão linear múltipla, é importante entender o que é o aprendizado de máquina. O aprendizado de máquina é o estudo de algoritmos computacionais que melhoram automaticamente com a experiência e o uso de dados. Esses algoritmos constroem modelos com base nos dados fornecidos durante o treinamento do modelo.

O que é Regressão Linear?

A regressão linear é um método estatístico usado para modelar a relação entre uma variável dependente e uma ou mais variáveis independentes. Ela é amplamente utilizada em investimentos, finanças e outras disciplinas para determinar a força e a relação entre as variáveis.

Na regressão linear simples, temos apenas uma variável independente que é usada para prever a variável dependente. Por exemplo, podemos usar o tamanho de uma casa para prever o preço da casa. A equação da regressão linear simples é representada por:

y = A + Bx

Onde:

  • y é a variável dependente (nesse caso, o preço da casa)
  • x é a variável independente (nesse caso, o tamanho da casa)
  • A é a interseção da linha de regressão (quando o preço da casa é zero)
  • B é o coeficiente de inclinação da linha de regressão (indica como o preço da casa varia com o aumento do tamanho)

Regressão Linear Múltipla

Na regressão linear múltipla, temos várias variáveis independentes que são usadas para prever a variável dependente. Por exemplo, além do tamanho da casa, também podemos considerar o número de quartos, a localização e o estado da casa como variáveis independentes para prever o preço da casa.

A equação da regressão linear múltipla é representada por:

y = A + B1x1 + B2x2 + B3x3 + ... + Bnxn

Onde:

  • y é a variável dependente (nesse caso, o preço da casa)
  • x1, x2, x3, ..., xn são as variáveis independentes (nesse caso, tamanho da casa, número de quartos, localização, estado, etc.)
  • A é a interseção da linha de regressão (quando todas as variáveis independentes são zero)
  • B1, B2, B3, ..., Bn são os coeficientes de inclinação da linha de regressão (indicam como cada variável independente afeta o preço da casa)

Implementando a Regressão Linear Múltipla com Python e Scikit-Learn

Agora que entendemos o conceito de regressão linear múltipla, vamos implementá-la usando a biblioteca Scikit-Learn em Python. Vamos usar o conjunto de dados "50_Startups.csv" para treinar nosso modelo de regressão linear múltipla.

Leitura do Conjunto de Dados

Primeiro, precisamos ler o conjunto de dados usando a biblioteca Pandas:

import pandas as pd

# Lendo o conjunto de dados
df = pd.read_csv('50_Startups.csv')

# Exibindo as primeiras linhas do conjunto de dados
df.head()

O conjunto de dados contém informações sobre 50 startups, incluindo o valor investido, os gastos com pesquisa e desenvolvimento, os gastos com marketing e o lucro. Vamos considerar as variáveis independentes como "R&D Spend", "Administration" e "Marketing Spend", e a variável dependente como "Profit".

Divisão das Variáveis Independentes e Dependente

Agora, vamos separar as variáveis independentes e a variável dependente:

# Separando as variáveis independentes e a variável dependente
X = df.drop('Profit', axis=1)
y = df['Profit']

Tratamento de Variáveis Categóricas

No nosso conjunto de dados, a coluna "State" é uma variável categórica. Precisamos tratá-la antes de aplicar a regressão linear múltipla. Vamos usar a função "get_dummies()" do Pandas para lidar com variáveis categóricas:

# Tratando variáveis categóricas
states = pd.get_dummies(X['State'], drop_first=True)

# Removendo a coluna "State" original
X = X.drop('State', axis=1)

# Concatenando as variáveis independentes e a nova variável categórica
X = pd.concat([X, states], axis=1)

Divisão dos Dados em Treinamento e Teste

Agora, vamos dividir os dados em conjuntos de treinamento e teste usando a função "train_test_split()" do Scikit-Learn:

from sklearn.model_selection import train_test_split

# Divisão dos dados em treinamento e teste
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

Aplicação do Modelo de Regressão Linear Múltipla

Agora, vamos aplicar o modelo de regressão linear múltipla aos nossos dados de treinamento. Primeiro, precisamos importar a classe "LinearRegression" do Scikit-Learn:

from sklearn.linear_model import LinearRegression

# Criando um objeto de regressão linear
lr = LinearRegression()

# Treinando o modelo com os dados de treinamento
lr.fit(X_train, y_train)

Após o treinamento, nosso modelo estará pronto para fazer previsões. Vamos usar os dados de teste para fazer as previsões:

# Fazendo previsões com os dados de teste
y_pred = lr.predict(X_test)

Avaliação do Modelo

Agora que temos as previsões do nosso modelo, vamos avaliar sua precisão usando a métrica R² (coeficiente de determinação). O R² varia de 0 a 1 e indica a proporção da variância da variável dependente que pode ser prevista pelas variáveis independentes.

from sklearn.metrics import r2_score

# Calculando o R²
score = r2_score(y_test, y_pred)

print("O score de precisão (R²) é:", score)

Quanto maior o valor de R², melhor é a capacidade do modelo de fazer previsões precisas. Além disso, podemos calcular o erro quadrático médio (MSE) e o erro quadrático médio raiz (RMSE) para avaliar a qualidade das previsões:

from sklearn.metrics import mean_squared_error
import numpy as np

# Calculando o MSE
mse = mean_squared_error(y_test, y_pred)

# Calculando o RMSE
rmse = np.sqrt(mse)

print("O erro quadrático médio (MSE) é:", mse)
print("O erro quadrático médio raiz (RMSE) é:", rmse)

O MSE e o RMSE medem a média dos erros ao quadrado entre as previsões e os valores reais. Quanto menor o valor dessas métricas, melhor é a qualidade das previsões.

Conclusão

Neste artigo, exploramos o conceito de regressão linear múltipla e como implementá-la usando a biblioteca Scikit-Learn em Python. A regressão linear múltipla é uma técnica poderosa para analisar a relação entre várias variáveis independentes e uma variável dependente. Com a ajuda do Scikit-Learn, podemos treinar um modelo de regressão linear múltipla e fazer previsões precisas com base nos dados fornecidos.

Espero que este artigo tenha sido útil para você! Se tiver alguma dúvida ou quiser saber mais sobre o assunto, sinta-se à vontade para entrar em contato comigo pelo LinkedIn: [link do seu perfil no LinkedIn].

Além disso, você pode conferir meus outros artigos em: [link para seus outros artigos].

Obrigado!

References

Top Articles
Latest Posts
Article information

Author: Terrell Hackett

Last Updated: 05/12/2023

Views: 5809

Rating: 4.1 / 5 (52 voted)

Reviews: 83% of readers found this page helpful

Author information

Name: Terrell Hackett

Birthday: 1992-03-17

Address: Suite 453 459 Gibson Squares, East Adriane, AK 71925-5692

Phone: +21811810803470

Job: Chief Representative

Hobby: Board games, Rock climbing, Ghost hunting, Origami, Kabaddi, Mushroom hunting, Gaming

Introduction: My name is Terrell Hackett, I am a gleaming, brainy, courageous, helpful, healthy, cooperative, graceful person who loves writing and wants to share my knowledge and understanding with you.