Nota
Haz clic en aquí para descargar el código de ejemplo completo o para ejecutar este ejemplo en tu navegador a través de Binder
Graficar las predicciones de la regresión individual y de la votación¶
Un regresor de votación es un metaestimador de conjunto (ensemble) que ajusta varios regresores de base, cada uno de ellos en todo el conjunto de datos. A continuación, promedia las predicciones individuales para formar una predicción final. Utilizaremos tres regresores diferentes para predecir los datos: GradientBoostingRegressor
, RandomForestRegressor
, y LinearRegression
). A continuación, se utilizarán los tres regresores anteriores para la clase VotingRegressor
.
Por último, graficaremos las predicciones realizadas por todos los modelos para compararlas.
Trabajaremos con el conjunto de datos de la diabetes, que consta de 10 características recogidas de una cohorte de pacientes diabéticos. El objetivo es una medida cuantitativa de la progresión de la enfermedad un año después de la línea de base.
print(__doc__)
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
Clasificadores de entrenamiento¶
En primer lugar, cargaremos el conjunto de datos de la diabetes e iniciaremos un regresor de potenciación de gradiente, un regresor de bosque aleatorio y una regresión lineal. A continuación, utilizaremos los 3 regresores para construir el regresor de votación:
X, y = load_diabetes(return_X_y=True)
# Train classifiers
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)
Haciendo predicciones¶
Ahora utilizaremos cada uno de los regresores para hacer las 20 primeras predicciones.
xt = X[:20]
pred1 = reg1.predict(xt)
pred2 = reg2.predict(xt)
pred3 = reg3.predict(xt)
pred4 = ereg.predict(xt)
Graficar los resultados¶
Por último, visualizaremos las 20 predicciones. Las estrellas rojas muestran la predicción media realizada por VotingRegressor
.
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('predicted')
plt.xlabel('training samples')
plt.legend(loc="best")
plt.title('Regressor predictions and their average')
plt.show()
Tiempo total de ejecución del script: (0 minutos 0.876 segundos)