Algoritmos de regressão | 5 algoritmos de regressão que você deve conhecer

Conteúdo

Em Machine Learning, Usamos vários tipos de algoritmos para permitir que as máquinas aprendam as relações dentro dos dados fornecidos e façam previsões baseadas em padrões ou regras identificadas no conjunto de dados.. Então, Regressão é uma técnica de aprendizado de máquina onde o modelo prevê a produção como um valor numérico contínuo.

stock-market-or-forex-trading-graph-in-graphic-concept

Fonte: https://www.hindish.com

A análise de regressão é frequentemente usada nas finanças, investimentos e outros, e descobrir a relação entre uma única variável dependente (variável alvo) que depende de vários independentes. Por exemplo, Prever o preço da habitação, o mercado de ações ou o salário de um funcionário, etc.são os mais comuns
problemas de regressão.

Os algoritmos que vamos cobrir são:

1. Regressão linear

2. Árvore de decisão

3. Suporte à regressão vetorial

4. Regressão de loop

5. Floresta aleatória

1. Regressão linear

Regressão linear é um algoritmo de aprendizado de máquina usado para aprendizado supervisionado. A regressão linear realiza a tarefa de prever uma variável dependente (objetivo) dependendo das variáveis independentes dadas. Então, Esta técnica de regressão encontra uma relação linear entre uma variável dependente e as outras variáveis independentes.. Portanto, o nome deste algoritmo é Regressão Linear.

87851LR-9126938

Na figura acima, no eixo X é a variável independente e no eixo y é a saída. A linha de regressão é a linha que melhor se encaixa em um modelo. E nosso principal objetivo neste algoritmo é encontrar a linha que melhor se encaixa..

Prós:

  • Regressão linear é simples de implementar.
  • Menos complexidade em comparação com outros algoritmos.
  • Regressão linear pode causar superequiptação, Mas pode ser evitado usando algumas técnicas de redução de dimensionalidade, Técnicas de regularização e validação cruzada.

Contras:

  • Outliers afetam severamente este algoritmo.
  • Simplifica demais os problemas do mundo real ao assumir uma relação linear entre variáveis, por isso não recomendado para casos de uso prático.

Implementação

import numpy as np
from sklearn.linear_model import LinearRegression
X = np.array([[2, 1], [3, 2], [4, 2], [5, 3]])
# y = 1 * x_0 + 2 * x_1 + 3
y = np.dot(X, np.array([1, 2])) + 3
lr = LinearRegression().ajuste(X, e)
Lr.predict(np.array([[1, 5]]))

Saída
variedade([14.])

2. Árvore de decisão

Modelos de árvore de decisão podem ser aplicados a todos os dados que contenham características numéricas e características categóricas. As árvores de decisão são boas para capturar a interação não linear entre características e a variável alvo. As árvores de decisão coincidem de alguma forma com o pensamento no nível humano, por isso é muito intuitivo entender os dados.

52036DT-6549490

Fonte: https://dinhanhthi.com

Por exemplo, Se estamos resolvendo quantas horas uma criança joga em um clima particular, A árvore de decisão se parece um pouco com isso na foto.

Então, em resumo, Uma árvore de decisão é uma árvore onde cada nó representa uma característica, Cada ramo representa uma decisão e cada folha representa um resultado (valor numérico para regressão).

Prós:

  • Fácil de entender e interpretar, Visualmente intuitivo.
  • Pode trabalhar com características numéricas e categóricas.
  • Requer pouco processamento pré-dados: Não há necessidade de codificação one-hot, variáveis falsas, etc.

Contras:

  • Tende a se curvar demais.
  • Uma pequena mudança nos dados tende a fazer uma grande diferença na estrutura da árvore., o que causa instabilidade.

Implementação

import numpy as np
from sklearn.tree import DecisionTreeRegressor
rng = np.random.RandomState(1)
X = np.sort(5 * rng.rand(80, 1), eixo = 0)
y = np.sin(X).Ravel()
e[::5] += 3 * (0.5 - rng.rand(16))
# Fit regression model
regr = DecisionTreeRegressor(max_depth=2)
regr.fit(X, e)
# Predict
X_test = np.arange(0.0, 5.0, 1)[:, por exemplo, newaxis]
resultado = regr.predict(X_test)
imprimir(resultado)

Saída:
[ 0.05236068  0.71382568  0.71382568  0.71382568 -0.86864256]

3. Suporte à regressão vetorial

Você deve ter ouvido falar de SVM, quer dizer, Máquina de vetores de suporte. SVR também usa a mesma ideia de SVM, mas aqui ele tenta prever os valores reais. Este algoritmo usa hiperplanos para segregar dados. Caso essa separação não seja possível, Em seguida, use o truque do kernel onde a dimensão aumenta e, em seguida, os pontos de dados tornam-se separáveis por um hiperplano.

14173SVR-1984277

Fonte: https://www.medium.com

Na figura acima, A Linha Azul é o Hiperplano; A linha vermelha é a linha de fronteira

Todos os pontos de dados estão dentro da linha de fronteira (Linha Vermelha). O principal objetivo do SVR é basicamente considerar os pontos que estão dentro da linha de fronteira..

Prós:

  • Robusto para outliers.
  • Excelente generalizabilidade
  • Alta precisão de previsão.

Contras:

  • Não é adequado para grandes conjuntos de dados.
  • Eles não funcionam muito bem quando o conjunto de dados tem mais ruído.

Implementação

from sklearn.svm import SVR
import numpy as np
rng = np.random.RandomState(1)
X = np.sort(5 * rng.rand(80, 1), eixo = 0)
y = np.sin(X).Ravel()
e[::5] += 3 * (0.5 - rng.rand(16))
# Fit regression model
svr = SVR().ajuste(X, e)
# Predict
X_test = np.arange(0.0, 5.0, 1)[:, por exemplo, newaxis]
svr.predict(X_test)
Saída:
variedade([-0.07840308,  0.78077042,  0.81326895,  0.08638149, -0.6928019 ])

4. Regressão de loop

  • LASSO significa Operador de Contração de Seleção Mínima Absoluta. A contração é basicamente definida como uma restrição de atributos ou parâmetros.
  • O algoritmo funciona encontrando e aplicando uma restrição aos atributos do modelo que fazem com que os coeficientes de regressão de algumas variáveis sejam reduzidos a zero..
  • Variáveis com coeficiente de regressão de zero são excluídas do modelo.
  • Portanto, A análise de regressão de loop é basicamente um método de seleção variável e contração e ajuda a determinar quais dos preditores são mais importantes..

Prós:

Contras:

  • O LASSO selecionará apenas um recurso de um grupo de recursos mapeados
  • Os recursos selecionados podem ser fortemente tendenciosos.

Implementação

from sklearn import linear_model
import numpy as np
rng = np.random.RandomState(1)
X = np.sort(5 * rng.rand(80, 1), eixo = 0)
y = np.sin(X).Ravel()
e[::5] += 3 * (0.5 - rng.rand(16))
# Fit regression model
lassoReg = linear_model.Lasso(alfa=0,1)
lassoReg.fit(X,e)
# Predict
X_test = np.arange(0.0, 5.0, 1)[:, por exemplo, newaxis]
lassoReg.prever(X_test)
Saída:
variedade([ 0.78305084,  0.49957596,  0.21610108, -0.0673738 , -0.35084868])

5. Regressor florestal aleatório

Florestas aleatórias são um conjunto (combinação) de árvores de decisão. É um algoritmo de aprendizagem supervisionado que é usado para classificação e regressão. Os dados de entrada são passados através de várias árvores de decisão. É executado construindo um número diferente de árvores de decisão no momento do treinamento e gerando a classe que é o modo das aulas (para classificação) o previsão média (para regressão) de árvores individuais.

83963RFR-2580351

Fonte: https://levelup.gitconnected.com

Prós:

  • Bom para aprender relacionamentos complexos e não lineares
  • Muito fácil de interpretar e entender.

Contras:

  • São propensos a superequipar
  • Usar matrizes florestais aleatórias maiores para alcançar maior desempenho diminui sua velocidade e, em seguida, eles também precisam de mais memória.

Implementação

from sklearn.ensemble import RandomForestRegressor
from sklearn.datasets import make_regression
X, y = make_regression(n_features=4, n_informative=2, random_state = 0, shuffle = False)
rfr = RandomForestRegressor(max_depth=3)
rfr.fit(X, e)
imprimir(rfr.predict([[0, 1, 0, 1]]))

Saída:
[33.2470716]

Notas finais

Aqui estão alguns algoritmos de regressão populares, Há muito mais e também algoritmos avançados. Explore-os também.. Você também pode seguir esses algoritmos de classificação para aumentar seu conhecimento de aprendizado de máquina..

Obrigado por ler se você chegou aqui 🙂

Vamos conectar LinkedIn

A mídia mostrada neste artigo não é propriedade da Analytics Vidhya e é usada a critério do autor.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.