Predicción de diabetes utilizando Voting Regressor

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

En este laboratorio, usaremos un Voting Regressor para predecir la progresión de la diabetes en pacientes. Usaremos tres regresores diferentes para predecir los datos: Gradient Boosting Regressor, Random Forest Regressor y Linear Regression. Luego, los 3 regresores anteriores se usarán para el Voting Regressor. Finalmente, graficaremos las predicciones hechas por todos los modelos para compararlas.

Trabajaremos con el conjunto de datos de diabetes que consta de 10 características recolectadas de una cohorte de pacientes con diabetes. La variable objetivo es una medida cuantitativa de la progresión de la enfermedad un año después de la línea base.

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 Notebook 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 comentarios después de la sesión y resolveremos el problema inmediatamente para usted.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn(("Sklearn")) -.-> sklearn/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) sklearn(("Sklearn")) -.-> sklearn/UtilitiesandDatasetsGroup(["Utilities and Datasets"]) sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/linear_model("Linear Models") sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/ensemble("Ensemble Methods") sklearn/UtilitiesandDatasetsGroup -.-> sklearn/datasets("Datasets") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/linear_model -.-> lab-49330{{"Predicción de diabetes utilizando Voting Regressor"}} sklearn/ensemble -.-> lab-49330{{"Predicción de diabetes utilizando Voting Regressor"}} sklearn/datasets -.-> lab-49330{{"Predicción de diabetes utilizando Voting Regressor"}} ml/sklearn -.-> lab-49330{{"Predicción de diabetes utilizando Voting Regressor"}} end

Importar bibliotecas

Vamos a importar las bibliotecas necesarias para realizar la predicción de diabetes utilizando el Voting Regressor.

import matplotlib.pyplot as plt
from sklearn.datasets import load_diabetes
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.ensemble import RandomForestRegressor
from sklearn.linear_model import LinearRegression
from sklearn.ensemble import VotingRegressor

Cargar el conjunto de datos de diabetes

A continuación, cargaremos el conjunto de datos de diabetes en nuestro programa utilizando la función load_diabetes() proporcionada por scikit-learn. Esta función devuelve el conjunto de datos como una tupla de dos matrices: una que contiene los datos de características y la otra que contiene los datos de destino. Asignaremos estas matrices a X e y, respectivamente.

## Cargar el conjunto de datos de diabetes
X, y = load_diabetes(return_X_y=True)

Entrenar los regresores

Ahora, vamos a inicializar un Gradient Boosting Regressor, un Random Forest Regressor y una Linear Regression. A continuación, usaremos los 3 regresores para construir el Voting Regressor.

## Entrenar clasificadores
reg1 = GradientBoostingRegressor(random_state=1)
reg2 = RandomForestRegressor(random_state=1)
reg3 = LinearRegression()

reg1.fit(X, y)
reg2.fit(X, y)
reg3.fit(X, y)

ereg = VotingRegressor([("gb", reg1), ("rf", reg2), ("lr", reg3)])
ereg.fit(X, y)

Realizar predicciones

Ahora usaremos cada uno de los regresores para hacer las 20 primeras predicciones.

## Realizar predicciones
xt = X[:20]

pred1 = reg1.predict(xt)
pred2 = reg2.predict(xt)
pred3 = reg3.predict(xt)
pred4 = ereg.predict(xt)

Graficar los resultados

Finalmente, visualizaremos las 20 predicciones. Las estrellas rojas muestran la predicción promedio realizada por el Voting Regressor.

## Graficar los resultados
plt.figure()
plt.plot(pred1, "gd", label="GradientBoostingRegressor")
plt.plot(pred2, "b^", label="RandomForestRegressor")
plt.plot(pred3, "ys", label="LinearRegression")
plt.plot(pred4, "r*", ms=10, label="VotingRegressor")

plt.tick_params(axis="x", which="both", bottom=False, top=False, labelbottom=False)
plt.ylabel("predicho")
plt.xlabel("muestras de entrenamiento")
plt.legend(loc="best")
plt.title("Predicciones de los regresores y su promedio")

plt.show()

Resumen

En este laboratorio, hemos utilizado el Voting Regressor para predecir la progresión de la diabetes en pacientes. Hemos utilizado tres regresores diferentes para predecir los datos: Gradient Boosting Regressor, Random Forest Regressor y Linear Regression. También hemos visualizado las predicciones hechas por todos los modelos para comparación.