Construindo Regressão Linear Usando NumPy
Você já sabe o que é regressão linear simples e como encontrar a linha que melhor se ajusta aos dados. Agora, você passará por todas as etapas de construção de uma regressão linear para um conjunto de dados real.
Carregando os 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 representa a característica de entrada, e a segunda é 'Height'
, que é nossa variável alvo.
Atribuímos os valores alvo à variável y
e os valores da característica à variável X
, e construímos um gráfico de dispersão.
12345678910import pandas as pd import matplotlib.pyplot as plt 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 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.
A Regressão Linear é uma Regressão Polinomial de grau 1 (falaremos sobre Regressão Polinomial em seções posteriores). Por isso, precisamos definir deg=1
para obter os parâmetros da regressão linear.
Veja um exemplo:
12345678910import pandas as pd import numpy as np 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 files X, y = df['Father'], df['Height'] # Assign the variables 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, uma 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 utilizando os parâmetros.
123456789101112import pandas as pd import numpy as np import matplotlib.pyplot as plt 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 X, y = df['Father'], df['Height'] # Assign the variables beta_1, beta_0 = np.polyfit(X, y, 1) # Get the parameters plt.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 utilizar a equação da regressão linear para prever novos valores.
1234567891011import pandas as pd import numpy as np import matplotlib.pyplot as plt 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 X, y = df['Father'], df['Height'] # Assign the variables beta_1, beta_0 = np.polyfit(X, y, 1) # Get the parameters X_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. No entanto, 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
Awesome!
Completion rate improved to 5.26
Construindo Regressão Linear Usando NumPy
Deslize para mostrar o menu
Você já sabe o que é regressão linear simples e como encontrar a linha que melhor se ajusta aos dados. Agora, você passará por todas as etapas de construção de uma regressão linear para um conjunto de dados real.
Carregando os 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 representa a característica de entrada, e a segunda é 'Height'
, que é nossa variável alvo.
Atribuímos os valores alvo à variável y
e os valores da característica à variável X
, e construímos um gráfico de dispersão.
12345678910import pandas as pd import matplotlib.pyplot as plt 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 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.
A Regressão Linear é uma Regressão Polinomial de grau 1 (falaremos sobre Regressão Polinomial em seções posteriores). Por isso, precisamos definir deg=1
para obter os parâmetros da regressão linear.
Veja um exemplo:
12345678910import pandas as pd import numpy as np 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 files X, y = df['Father'], df['Height'] # Assign the variables 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, uma 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 utilizando os parâmetros.
123456789101112import pandas as pd import numpy as np import matplotlib.pyplot as plt 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 X, y = df['Father'], df['Height'] # Assign the variables beta_1, beta_0 = np.polyfit(X, y, 1) # Get the parameters plt.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 utilizar a equação da regressão linear para prever novos valores.
1234567891011import pandas as pd import numpy as np import matplotlib.pyplot as plt 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 X, y = df['Father'], df['Height'] # Assign the variables beta_1, beta_0 = np.polyfit(X, y, 1) # Get the parameters X_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. No entanto, algumas bibliotecas também podem fornecer informações adicionais.
Obrigado pelo seu feedback!