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, y descubre la relación entre una sola 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

La regresión lineal es un algoritmo de aprendizaje automático que se utiliza para el aprendizagem supervisionada. 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

En la figura anterior, 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 y validación 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, un árbol de decisiones es un árbol donde cada representa una 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, entonces usa el truco del kernel donde la dimensão aumenta y luego los puntos de datos se vuelven separables por un 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. La contracción se define básicamente como una restricción de atributos o parametros.
  • 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. Se ejecuta construyendo un número diferente de árboles de decisión en el momento del Treinamento y generando la clase que es el modo de las clases (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ê.