Algoritmos de regressão - Visão geral

Introdução à Regressão

A regressão é outra ferramenta estatística e de aprendizado de máquina importante e amplamente usada. O principal objetivo das tarefas baseadas em regressão é prever rótulos de saída ou respostas que são valores numéricos contínuos, para os dados de entrada fornecidos. A saída será baseada no que o modelo aprendeu na fase de treinamento. Basicamente, os modelos de regressão usam os recursos de dados de entrada (variáveis ​​independentes) e seus valores de saída numérica contínuos correspondentes (variáveis ​​dependentes ou de resultado) para aprender a associação específica entre entradas e saídas correspondentes.

Tipos de modelos de regressão

Os modelos de regressão são dos seguintes tipos -

Simple regression model - Este é o modelo de regressão mais básico no qual as previsões são formadas a partir de uma única característica univariada dos dados.

Multiple regression model - Como o nome indica, neste modelo de regressão as previsões são formadas a partir de vários recursos dos dados.

Construindo um Regressor em Python

O modelo regressor em Python pode ser construído da mesma forma que construímos o classificador. Scikit-learn, uma biblioteca Python para aprendizado de máquina também pode ser usada para construir um regressor em Python.

No exemplo a seguir, estaremos construindo um modelo de regressão básico que ajustará uma linha aos dados, ou seja, regressor linear. As etapas necessárias para construir um regressor em Python são as seguintes -

Etapa 1: importando o pacote python necessário

Para construir um regressor usando o scikit-learn, precisamos importá-lo junto com outros pacotes necessários. Podemos importar o usando o seguinte script -

import numpy as np
from sklearn import linear_model
import sklearn.metrics as sm
import matplotlib.pyplot as plt

Etapa 2: Importar conjunto de dados

Depois de importar o pacote necessário, precisamos de um conjunto de dados para construir o modelo de previsão de regressão. Podemos importá-lo do conjunto de dados sklearn ou usar outro de acordo com nossa necessidade. Vamos usar nossos dados de entrada salvos. Podemos importá-lo com a ajuda do seguinte script -

input = r'C:\linear.txt'

Em seguida, precisamos carregar esses dados. Estamos usando a função np.loadtxt para carregá-lo.

input_data = np.loadtxt(input, delimiter=',')
X, y = input_data[:, :-1], input_data[:, -1]

Etapa 3: organização de dados em conjuntos de treinamento e teste

Como precisamos testar nosso modelo em dados invisíveis, dividiremos nosso conjunto de dados em duas partes: um conjunto de treinamento e um conjunto de teste. O seguinte comando irá executá-lo -

training_samples = int(0.6 * len(X))
testing_samples = len(X) - num_training

X_train, y_train = X[:training_samples], y[:training_samples]

X_test, y_test = X[training_samples:], y[training_samples:]

Etapa 4: avaliação e previsão do modelo

Depois de dividir os dados em treinamento e teste, precisamos construir o modelo. Estaremos usando a função LineaRegression () do Scikit-learn para este propósito. O comando a seguir criará um objeto de regressor linear.

reg_linear= linear_model.LinearRegression()

Em seguida, treine este modelo com os exemplos de treinamento da seguinte forma -

reg_linear.fit(X_train, y_train)

Agora, finalmente, precisamos fazer a previsão com os dados de teste.

y_test_pred = reg_linear.predict(X_test)

Etapa 5: gráfico e visualização

Após a previsão, podemos traçar e visualizar com a ajuda do seguinte script -

Example

plt.scatter(X_test, y_test, color='red')
plt.plot(X_test, y_test_pred, color='black', linewidth=2)
plt.xticks(())
plt.yticks(())
plt.show()

Output

Na saída acima, podemos ver a linha de regressão entre os pontos de dados.

Etapa 6: cálculo de desempenho

Também podemos calcular o desempenho do nosso modelo de regressão com a ajuda de várias métricas de desempenho da seguinte forma -

Example

print("Regressor model performance:")
print("Mean absolute error(MAE) =", round(sm.mean_absolute_error(y_test, y_test_pred), 2))
print("Mean squared error(MSE) =", round(sm.mean_squared_error(y_test, y_test_pred), 2))
print("Median absolute error =", round(sm.median_absolute_error(y_test, y_test_pred), 2))
print("Explain variance score =", round(sm.explained_variance_score(y_test, y_test_pred), 2))
print("R2 score =", round(sm.r2_score(y_test, y_test_pred), 2))

Output

Regressor model performance:
Mean absolute error(MAE) = 1.78
Mean squared error(MSE) = 3.89
Median absolute error = 2.01
Explain variance score = -0.09
R2 score = -0.09

Tipos de algoritmos de regressão de ML

O algoritmo de regressão ML mais útil e popular é o algoritmo de regressão linear, que ainda é dividido em dois tipos, a saber -

  • Algoritmo de regressão linear simples

  • Algoritmo de regressão linear múltipla.

Discutiremos sobre isso e implementaremos em Python no próximo capítulo.

Formulários

As aplicações dos algoritmos de regressão de ML são as seguintes -

Forecasting or Predictive analysis- Um dos usos importantes da regressão é a previsão ou análise preditiva. Por exemplo, podemos prever o PIB, os preços do petróleo ou, em palavras simples, os dados quantitativos que mudam com o passar do tempo.

Optimization- Podemos otimizar processos de negócios com a ajuda de regressão. Por exemplo, um gerente de loja pode criar um modelo estatístico para entender o momento da chegada dos clientes.

Error correction- Nos negócios, tomar decisões corretas é tão importante quanto otimizar o processo de negócios. A regressão pode nos ajudar a tomar decisões corretas, bem como a corrigir a decisão já implementada.

Economics- É a ferramenta mais utilizada na economia. Podemos usar a regressão para prever a oferta, demanda, consumo, investimento em estoque etc.

Finance- Uma empresa financeira está sempre interessada em minimizar a carteira de risco e deseja conhecer os fatores que afetam os clientes. Tudo isso pode ser previsto com a ajuda do modelo de regressão.