Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Construindo Regressão Linear | Seção
Fundamentos do Aprendizado Supervisionado

bookConstruindo Regressão Linear

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 Dados

Temos um arquivo, simple_height_data.csv, com os dados dos nossos exemplos. Vamos carregar o arquivo e analisá-lo:

123456
import 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
copy

O conjunto de dados possui duas colunas: a primeira é 'Father', que é a característica de entrada, e a segunda é 'Height', que é nossa variável alvo.

Os valores alvo serão atribuídos à variável y e os valores das características à variável X, e será construído um gráfico de dispersão.

123456
import matplotlib.pyplot as plt X = df['Father'] # Assign the feature y = df['Height'] # Assign the target plt.scatter(X,y) # Build scatterplot plt.show()
copy

Encontrando Parâmetros

Para implementar a regressão linear no Scikit-learn, utiliza-se a classe LinearRegression.

LinearRegression(fit_intercept=True, copy_X=True, n_jobs=None, positive=False)

Parâmetros

A classe LinearRegression possui diversos parâmetros que controlam como o modelo será ajustado.

  • fit_intercept (padrão=True): Define se o intercepto (viés) será calculado para este modelo. Se definido como False, nenhum intercepto será utilizado nos cálculos (ou seja, os dados devem estar centralizados).
  • copy_X (padrão=True): Se True, X será copiado; caso contrário, pode ser sobrescrito.
  • n_jobs (padrão=None): Número de tarefas a serem usadas no cálculo. Isso só proporcionará ganho de desempenho para n_targets > 1 e problemas suficientemente grandes. None significa 1, exceto em contexto joblib.parallel_backend. -1 significa usar todos os processadores.
  • positive (padrão=False): Quando definido como True, força os coeficientes a serem positivos. Esta opção é suportada apenas para arrays densos.

Métodos Comuns

  • fit(X, y): Ajusta o modelo linear.
  • predict(X): Realiza previsões utilizando o modelo linear.
  • score(X, y): Retorna o coeficiente de determinação da previsão.

Atributos

  • coef_: Coeficientes estimados para o problema de regressão linear.
  • intercept_: Termo independente no modelo linear.

No Scikit-learn, utiliza-se a classe LinearRegression do módulo linear_model. Diferente do NumPy, não se define o grau aqui; esta classe é projetada especificamente para modelos lineares. O método .fit() é utilizado para calcular os parâmetros.

Exemplo:

1234567891011121314
from sklearn.linear_model import LinearRegression import numpy as np # Convert the pandas Series to a NumPy array, then reshape X_reshaped = X.values.reshape(-1, 1) model = LinearRegression() model.fit(X_reshaped, y) # Train the model beta_0 = model.intercept_ # Get the intercept (beta_0) beta_1 = model.coef_[0] # Get the coefficient (beta_1) print('beta_0 is', beta_0) print('beta_1 is', beta_1)
copy
Note
Nota

Se não estiver familiarizado com a sintaxe model.intercept_ e model.coef_, esta é uma convenção do Scikit-learn. Atributos calculados (aprendidos) durante o processo de treinamento sempre terminam com um sublinhado _ (por exemplo, intercept_, coef_). O intercept_ é um valor único, enquanto coef_ é um array que contém os coeficientes para cada característica (em regressão linear simples, possui apenas um item).

Realizando as Previsões

Agora podemos traçar a linha e prever novas variáveis utilizando o modelo treinado.

123
plt.scatter(X, y) # Build a scatter plot plt.plot(X, model.predict(X_reshaped), color='red') # Plot the line using predictions plt.show()
copy

Agora que temos o modelo treinado, podemos utilizar o método .predict() para prever novos valores.

123
X_new = np.array([[65], [70], [75]]) # Feature values (must be 2D) y_pred = model.predict(X_new) # Predict the target print('Predicted y: ', y_pred)
copy

Portanto, é bastante simples obter os parâmetros da regressão linear. No entanto, algumas bibliotecas também podem fornecer informações adicionais.

question mark

Qual classe é utilizada para implementar regressão linear no Scikit-learn?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 3

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

bookConstruindo Regressão Linear

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 Dados

Temos um arquivo, simple_height_data.csv, com os dados dos nossos exemplos. Vamos carregar o arquivo e analisá-lo:

123456
import 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
copy

O conjunto de dados possui duas colunas: a primeira é 'Father', que é a característica de entrada, e a segunda é 'Height', que é nossa variável alvo.

Os valores alvo serão atribuídos à variável y e os valores das características à variável X, e será construído um gráfico de dispersão.

123456
import matplotlib.pyplot as plt X = df['Father'] # Assign the feature y = df['Height'] # Assign the target plt.scatter(X,y) # Build scatterplot plt.show()
copy

Encontrando Parâmetros

Para implementar a regressão linear no Scikit-learn, utiliza-se a classe LinearRegression.

LinearRegression(fit_intercept=True, copy_X=True, n_jobs=None, positive=False)

Parâmetros

A classe LinearRegression possui diversos parâmetros que controlam como o modelo será ajustado.

  • fit_intercept (padrão=True): Define se o intercepto (viés) será calculado para este modelo. Se definido como False, nenhum intercepto será utilizado nos cálculos (ou seja, os dados devem estar centralizados).
  • copy_X (padrão=True): Se True, X será copiado; caso contrário, pode ser sobrescrito.
  • n_jobs (padrão=None): Número de tarefas a serem usadas no cálculo. Isso só proporcionará ganho de desempenho para n_targets > 1 e problemas suficientemente grandes. None significa 1, exceto em contexto joblib.parallel_backend. -1 significa usar todos os processadores.
  • positive (padrão=False): Quando definido como True, força os coeficientes a serem positivos. Esta opção é suportada apenas para arrays densos.

Métodos Comuns

  • fit(X, y): Ajusta o modelo linear.
  • predict(X): Realiza previsões utilizando o modelo linear.
  • score(X, y): Retorna o coeficiente de determinação da previsão.

Atributos

  • coef_: Coeficientes estimados para o problema de regressão linear.
  • intercept_: Termo independente no modelo linear.

No Scikit-learn, utiliza-se a classe LinearRegression do módulo linear_model. Diferente do NumPy, não se define o grau aqui; esta classe é projetada especificamente para modelos lineares. O método .fit() é utilizado para calcular os parâmetros.

Exemplo:

1234567891011121314
from sklearn.linear_model import LinearRegression import numpy as np # Convert the pandas Series to a NumPy array, then reshape X_reshaped = X.values.reshape(-1, 1) model = LinearRegression() model.fit(X_reshaped, y) # Train the model beta_0 = model.intercept_ # Get the intercept (beta_0) beta_1 = model.coef_[0] # Get the coefficient (beta_1) print('beta_0 is', beta_0) print('beta_1 is', beta_1)
copy
Note
Nota

Se não estiver familiarizado com a sintaxe model.intercept_ e model.coef_, esta é uma convenção do Scikit-learn. Atributos calculados (aprendidos) durante o processo de treinamento sempre terminam com um sublinhado _ (por exemplo, intercept_, coef_). O intercept_ é um valor único, enquanto coef_ é um array que contém os coeficientes para cada característica (em regressão linear simples, possui apenas um item).

Realizando as Previsões

Agora podemos traçar a linha e prever novas variáveis utilizando o modelo treinado.

123
plt.scatter(X, y) # Build a scatter plot plt.plot(X, model.predict(X_reshaped), color='red') # Plot the line using predictions plt.show()
copy

Agora que temos o modelo treinado, podemos utilizar o método .predict() para prever novos valores.

123
X_new = np.array([[65], [70], [75]]) # Feature values (must be 2D) y_pred = model.predict(X_new) # Predict the target print('Predicted y: ', y_pred)
copy

Portanto, é bastante simples obter os parâmetros da regressão linear. No entanto, algumas bibliotecas também podem fornecer informações adicionais.

question mark

Qual classe é utilizada para implementar regressão linear no Scikit-learn?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 3
some-alt