Introdução
Este laboratório demonstra como usar a regressão linear para traçar uma linha reta que melhor se ajusta a um conjunto de dados e como calcular os coeficientes, a soma dos quadrados dos resíduos e o coeficiente de determinação. Usaremos a biblioteca scikit-learn para realizar a regressão linear no conjunto de dados de diabetes.
Dicas da Máquina Virtual
Após o arranque da VM, 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 o problema rapidamente para si.
Carregar o Conjunto de Dados de Diabetes
Começamos carregando o conjunto de dados de diabetes do scikit-learn e selecionando apenas um recurso do conjunto de dados.
import numpy as np
from sklearn import datasets
## Carregar o conjunto de dados de diabetes
diabetes_X, diabetes_y = datasets.load_diabetes(return_X_y=True)
## Usar apenas um recurso
diabetes_X = diabetes_X[:, np.newaxis, 2]
Dividir o Conjunto de Dados
Em seguida, dividimos o conjunto de dados em conjuntos de treino e teste. Usaremos 80% dos dados para treino e 20% para teste.
## Dividir os dados em conjuntos de treino/teste
diabetes_X_train = diabetes_X[:-20]
diabetes_X_test = diabetes_X[-20:]
## Dividir os alvos em conjuntos de treino/teste
diabetes_y_train = diabetes_y[:-20]
diabetes_y_test = diabetes_y[-20:]
Treinar o Modelo
Agora, criamos um objeto de regressão linear e treinamos o modelo usando os conjuntos de treino.
from sklearn import linear_model
## Criar objeto de regressão linear
regr = linear_model.LinearRegression()
## Treinar o modelo usando os conjuntos de treino
regr.fit(diabetes_X_train, diabetes_y_train)
Fazer Previsões
Agora podemos usar o modelo treinado para fazer previsões no conjunto de teste.
## Fazer previsões usando o conjunto de teste
diabetes_y_pred = regr.predict(diabetes_X_test)
Calcular Métricas
Podemos calcular os coeficientes, o erro quadrático médio e o coeficiente de determinação.
from sklearn.metrics import mean_squared_error, r2_score
## Os coeficientes
print("Coeficientes: \n", regr.coef_)
## O erro quadrático médio
print("Erro quadrático médio: %.2f"
% mean_squared_error(diabetes_y_test, diabetes_y_pred))
## O coeficiente de determinação: 1 é uma previsão perfeita
print("Coeficiente de determinação: %.2f"
% r2_score(diabetes_y_test, diabetes_y_pred))
Visualizar os Resultados
Finalmente, podemos plotar os valores previstos contra os valores reais para visualizar o quão bem o modelo se ajusta aos dados.
import matplotlib.pyplot as plt
## Plotar os resultados
plt.scatter(diabetes_X_test, diabetes_y_test, color="black")
plt.plot(diabetes_X_test, diabetes_y_pred, color="blue", linewidth=3)
plt.xticks(())
plt.yticks(())
plt.show()
Resumo
Neste laboratório, aprendemos como usar a regressão linear para ajustar uma linha reta a um conjunto de dados e como calcular os coeficientes, a soma dos quadrados dos resíduos e o coeficiente de determinação. Também aprendemos como visualizar os valores previstos contra os valores reais usando um gráfico de dispersão.