Construindo Regressão Linear Usando NumPy
Você já conhece o que é a regressão linear simples e como encontrar a linha que melhor se ajusta aos dados. Agora, você irá 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 é a feature de entrada, e a segunda é 'Height'
, que é nossa variável alvo.
Atribuímos os valores alvo à variável y
e os valores da feature a 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
Agora, 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, é necessário 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, lista, array do NumPy ou série do pandas) com dois itens, escrever
a, b = my_iterator
é equivalente a
a = my_iterator[0]
b = my_iterator[1]
E como o retorno da função polyfit()
é um array do NumPy com dois valores, é permitido fazer isso.
Realização das Previsões
Agora é possível traçar 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á conhece o que é a regressão linear simples e como encontrar a linha que melhor se ajusta aos dados. Agora, você irá 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 é a feature de entrada, e a segunda é 'Height'
, que é nossa variável alvo.
Atribuímos os valores alvo à variável y
e os valores da feature a 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
Agora, 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, é necessário 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, lista, array do NumPy ou série do pandas) com dois itens, escrever
a, b = my_iterator
é equivalente a
a = my_iterator[0]
b = my_iterator[1]
E como o retorno da função polyfit()
é um array do NumPy com dois valores, é permitido fazer isso.
Realização das Previsões
Agora é possível traçar 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!