Ejemplo de regresión lineal

Machine LearningMachine LearningBeginner
Practicar Ahora

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

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Esta práctica demuestra cómo utilizar la regresión lineal para trazar una línea recta que se ajuste mejor a un conjunto de datos y cómo calcular los coeficientes, la suma residual de cuadrados y el coeficiente de determinación. Utilizaremos la biblioteca scikit-learn para realizar la regresión lineal en el conjunto de datos de diabetes.

Consejos sobre la VM

Una vez que se haya iniciado la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje sus comentarios después de la sesión y lo resolveremos rápidamente para usted.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/ModelSelectionandEvaluationGroup(["Model Selection and Evaluation"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/ModelSelectionandEvaluationGroup -.-> sklearn/metrics("Metrics") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/metrics -.-> lab-49231{{"Ejemplo de regresión lineal"}} ml/sklearn -.-> lab-49231{{"Ejemplo de regresión lineal"}} end

Cargar el conjunto de datos de diabetes

Comenzamos cargando el conjunto de datos de diabetes de scikit-learn y solo seleccionando una característica del conjunto de datos.

import numpy as np
from sklearn import datasets

## Cargar el conjunto de datos de diabetes
diabetes_X, diabetes_y = datasets.load_diabetes(return_X_y=True)

## Utilizar solo una característica
diabetes_X = diabetes_X[:, np.newaxis, 2]

Dividir el conjunto de datos

A continuación, dividimos el conjunto de datos en conjuntos de entrenamiento y prueba. Utilizaremos el 80% de los datos para el entrenamiento y el 20% para la prueba.

## Dividir los datos en conjuntos de entrenamiento/prueba
diabetes_X_train = diabetes_X[:-20]
diabetes_X_test = diabetes_X[-20:]

## Dividir las etiquetas en conjuntos de entrenamiento/prueba
diabetes_y_train = diabetes_y[:-20]
diabetes_y_test = diabetes_y[-20:]

Entrenar el modelo

Ahora, creamos un objeto de regresión lineal y entrenamos el modelo utilizando los conjuntos de entrenamiento.

from sklearn import linear_model

## Crear objeto de regresión lineal
regr = linear_model.LinearRegression()

## Entrenar el modelo utilizando los conjuntos de entrenamiento
regr.fit(diabetes_X_train, diabetes_y_train)

Realizar predicciones

Ahora podemos utilizar el modelo entrenado para realizar predicciones en el conjunto de prueba.

## Realizar predicciones utilizando el conjunto de prueba
diabetes_y_pred = regr.predict(diabetes_X_test)

Calcular métricas

Podemos calcular los coeficientes, el error cuadrático medio y el coeficiente de determinación.

from sklearn.metrics import mean_squared_error, r2_score

## Los coeficientes
print("Coefficients: \n", regr.coef_)

## El error cuadrático medio
print("Mean squared error: %.2f"
      % mean_squared_error(diabetes_y_test, diabetes_y_pred))

## El coeficiente de determinación: 1 es una predicción perfecta
print("Coefficient of determination: %.2f"
      % r2_score(diabetes_y_test, diabetes_y_pred))

Visualizar los resultados

Finalmente, podemos trazar los valores predichos contra los valores reales para visualizar qué tan bien el modelo se ajusta a los datos.

import matplotlib.pyplot as plt

## Trazar las salidas
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()

Resumen

En este laboratorio, aprendimos cómo utilizar la regresión lineal para ajustar una línea recta a un conjunto de datos y cómo calcular los coeficientes, la suma de cuadrados residuales y el coeficiente de determinación. También aprendimos cómo visualizar los valores predichos contra los valores reales utilizando un diagrama de dispersión.