Construindo Regressão Linear Usando NumPy
Deslize para mostrar o menu
Você já conhece o conceito de regressão linear simples e o procedimento para encontrar a reta que melhor se ajusta aos dados. A seguir, serão apresentadas todas as etapas de construção de uma regressão linear para um conjunto de dados real.
Carregando Dados
Temos um arquivo, simple_height_data.csv, com os dados dos nossos exemplos. Vamos carregar o arquivo e analisá-lo:
123456import pandas as pd file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Read the file print(df.head()) # Print the first 5 instances from a dataset
O conjunto de dados possui duas colunas: a primeira é 'Father', que é a feature de entrada, e a segunda é 'Height', que é nossa variável alvo.
Os valores alvo serão atribuídos à variável y e os valores da feature a X, e será construído um gráfico de dispersão.
123456import matplotlib.pyplot as plt X = df['Father'] # Assign the feature y = df['Height'] # Assign the target plt.scatter(X,y) # Build scatterplot plt.show()
Encontrando os Parâmetros
O NumPy possui uma função útil para encontrar os parâmetros da regressão linear.
Regressão Linear é uma Regressão Polinomial de grau 1 (iremos abordar Regressão Polinomial em seções posteriores). Por isso, é necessário definir deg=1 para obter os parâmetros da regressão linear.
Veja um exemplo:
12345import numpy as np beta_1, beta_0 = np.polyfit(X, y, 1) # Get the parameters print('beta_0 is', beta_0) print('beta_1 is', beta_1)
Se você não está familiarizado com a sintaxe beta_1, beta_0 = np.polyfit(X,y,1), isso é chamado de desempacotamento. Se você possui um iterador (por exemplo, lista, array do NumPy ou série do pandas) que contém dois itens, escrever
a, b = my_iterator
é o mesmo que
a = my_iterator[0]
b = my_iterator[1]
E como o retorno da função polyfit() é um array do NumPy com dois valores, podemos fazer isso.
Fazendo as previsões
Agora podemos plotar a linha e prever novas variáveis usando os parâmetros.
123plt.scatter(X,y) # Build a scatter plot plt.plot(X, beta_0 + beta_1 * X, color='red') # Plot the line plt.show()
Agora que temos os parâmetros, podemos usar a equação de regressão linear para prever novos valores.
123X_new = np.array([65, 70, 75]) # Feature values of new instances y_pred = beta_0 + beta_1 * X_new # Predict the target print('Predicted y: ', y_pred)
Portanto, é bastante simples obter os parâmetros da regressão linear. Mas algumas bibliotecas também podem fornecer informações adicionais.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo