Modelos Lineares no Scikit-Learn

Intermediate

This tutorial is from open-source community. Access the source code

Introdução

Neste laboratório, exploraremos modelos lineares no scikit-learn. Modelos lineares são um conjunto de métodos utilizados para tarefas de regressão e classificação. Eles assumem que a variável alvo é uma combinação linear das características. Estes modelos são amplamente utilizados em aprendizado de máquina devido à sua simplicidade e interpretabilidade.

Abordaremos os seguintes tópicos:

  • Mínimos Quadrados Ordinários
  • Regressão Ridge
  • Lasso
  • Regressão Logística
  • Gradiente Descendente Estocástico
  • Perceptron

Comece com Aprendizado Supervisionado: Regressão, se não tiver experiência prévia com Aprendizado de Máquina.

Dicas da Máquina Virtual

Após o arranque da máquina virtual, clique no canto superior esquerdo para mudar para a aba Notebook para aceder ao Jupyter Notebook para praticar.

Às vezes, pode ser necessário esperar alguns segundos para o Jupyter Notebook terminar de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se tiver problemas durante o aprendizado, não hesite em contactar o Labby. Forneça feedback após a sessão e resolveremos prontamente o problema para si.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível intermediário com uma taxa de conclusão de 58%. Recebeu uma taxa de avaliações positivas de 95% dos estudantes.

Mínimos Quadrados Ordinários

Comece com Aprendizado Supervisionado: Regressão, se não tiver experiência prévia com Aprendizado de Máquina.

Mínimos Quadrados Ordinários (MQO) é um método de regressão linear que minimiza a soma dos quadrados das diferenças entre os alvos observados e os alvos previstos. Matematicamente, resolve um problema da forma:

\min_{w} || X w - y||_2^2

Vamos começar ajustando um modelo de regressão linear usando MQO.

from sklearn import linear_model

reg = linear_model.LinearRegression()
X = [[0, 0], [1, 1], [2, 2]]
y = [0, 1, 2]
reg.fit(X, y)

print(reg.coef_)
  • Importamos o módulo linear_model do scikit-learn.
  • Criamos uma instância de LinearRegression.
  • Usamos o método fit para ajustar o modelo aos dados de treinamento.
  • Imprimimos os coeficientes do modelo linear.

Regressão Ridge

A regressão Ridge é um método de regressão linear que adiciona um termo de penalidade à função objetivo dos mínimos quadrados ordinários. Este termo de penalidade ajuda a reduzir o sobreajuste, encolhendo os coeficientes em direção a zero. A complexidade do modelo pode ser controlada pelo parâmetro de regularização.

Vamos ajustar um modelo de regressão Ridge.

reg = linear_model.Ridge(alpha=0.5)
reg.fit([[0, 0], [0, 0], [1, 1]], [0, 0.1, 1])

print(reg.coef_)
  • Criamos uma instância de Ridge com o parâmetro de regularização alpha definido como 0,5.
  • Usamos o método fit para ajustar o modelo aos dados de treinamento.
  • Imprimimos os coeficientes do modelo de regressão Ridge.

Lasso

Lasso é um método de regressão linear que adiciona um termo de penalidade à função objetivo dos mínimos quadrados ordinários. O termo de penalidade tem o efeito de definir alguns coeficientes exatamente em zero, realizando assim a seleção de características. Lasso pode ser usado para estimativa de modelos esparsos.

Vamos ajustar um modelo Lasso.

reg = linear_model.Lasso(alpha=0.1)
reg.fit([[0, 0], [1, 1]], [0, 1])

print(reg.coef_)
  • Criamos uma instância de Lasso com o parâmetro de regularização alpha definido como 0,1.
  • Usamos o método fit para ajustar o modelo aos dados de treinamento.
  • Imprimimos os coeficientes do modelo Lasso.

Regressão Logística

A regressão logística é um método de classificação que estima as probabilidades dos possíveis resultados usando uma função logística. É comumente usada para tarefas de classificação binária. A regressão logística também pode ser estendida para lidar com problemas de classificação multiclasse.

Vamos ajustar um modelo de regressão logística.

clf = linear_model.LogisticRegression(random_state=0).fit(X, y)
print(clf.coef_)
  • Criamos uma instância de LogisticRegression com o parâmetro random_state definido como 0.
  • Usamos o método fit para ajustar o modelo aos dados de treinamento.
  • Imprimimos os coeficientes do modelo de regressão logística.

Gradiente Descendente Estocástico (SGD)

O Gradiente Descendente Estocástico (SGD) é uma abordagem simples, mas eficiente, para treinar modelos lineares. É particularmente útil quando o número de amostras e recursos é muito grande. O SGD atualiza os parâmetros do modelo usando um pequeno subconjunto dos dados de treinamento em cada iteração, o que o torna adequado para aprendizado online e aprendizado fora da memória.

Vamos ajustar um modelo de regressão logística usando SGD.

clf = linear_model.SGDClassifier(loss="log_loss", max_iter=1000)
clf.fit(X, y)

print(clf.coef_)
  • Criamos uma instância de SGDClassifier com o parâmetro loss definido como "log_loss" para realizar regressão logística.
  • Usamos o método fit para ajustar o modelo aos dados de treinamento.
  • Imprimimos os coeficientes do modelo de regressão logística obtido usando SGD.

Perceptron

O Perceptron é um algoritmo de classificação linear simples, adequado para aprendizado em larga escala. Ele atualiza seu modelo apenas em erros, tornando-o mais rápido de treinar do que o gradiente descendente estocástico (SGD) com perda de dobradiça. Os modelos resultantes também são mais esparsos.

Vamos ajustar um modelo perceptron.

clf = linear_model.Perceptron(alpha=0.1)
clf.fit(X, y)

print(clf.coef_)
  • Criamos uma instância de Perceptron com o parâmetro de regularização alpha definido como 0,1.
  • Usamos o método fit para ajustar o modelo aos dados de treinamento.
  • Imprimimos os coeficientes do modelo perceptron.

Resumo

Neste laboratório, exploramos modelos lineares no scikit-learn. Aprendemos sobre mínimos quadrados ordinários, regressão de ridge, lasso, regressão logística, gradiente descendente estocástico e perceptron. Esses modelos podem ser usados para tarefas de regressão e classificação. Também vimos como ajustar esses modelos usando vários algoritmos e técnicas, como aprendizado online e seleção de recursos.