Ejemplo de bagging

Autor: | Última modificación: 15 de diciembre de 2022 | Tiempo de Lectura: 2 minutos
Temas en este post: ,

Algunos de nuestros reconocimientos:

Premios KeepCoding

En este artículo veremos un ejemplo de bagging con BaggingRegressor. Lo que haremos será entrenar un algoritmo de bagging y devolver las prestaciones para el conjunto de test.

Recordemos que el bagging es un método que consiste en reducir la varianza de los árboles de decisión, que, en función de la división de los resultados, pueden ser muy distintos.

Ejemplo de bagging

Observemos el siguiente código:

#Ejemplo de bagging
from sklearn.ensemble import BaggingRegressor

maxDepth = range (1, 10)
#param_grid = {'max_depth': maxDepth} --> esto falla
param_grid = {'base_estimator__max_depth' : maxDepth}
grid = GridSearchCV (BaggingRegressor (base_estimator = DecisionTreeRegressor (), n_estimators = 200, random_state = 0), param_grid = param_brid, cv = 3, verbose = 2)
grid.fit (X_train, y_train)
print ("best mean cross - validation score: {: . 3f}".format (grid.best_score))
print ("best parameters: { }".format (grid.best_params))

#Ejemplo de bagging
scores = np.array (grid.cv_results_ ['mean_test_score'])
plt.plot (maxDepth, scores, ' -o ')
plt.xlabel ('max_depth', fontsize = 16)
plt.ylabel ('10-Fold MSE')
#plt.ylim (-1, 0)
plt.show
Ejemplo de bagging 1
Ejemplo de bagging 2

Lo que vemos es que la subida de la curva va siendo cada vez menor, así que podríamos cortar más o menos en 6.

En el param_grid se tiene que pasar una cadena de texto con el nombre del parámetro. Pero esto va a fallar, porque el BaggingRegressor no tiene max_depth; entonces, para acceder a los parámetros de lo que dentro de BaggingRegressor se denomina base_estimator, que internamente son métodos privados, hay que hacerlo de este modo: param_grid = {‘base_estimator__max_depth’ : maxDepth}.

Esto va a funcionar porque nuestro base estimator es un árbol de decisión, por lo que sabemos que, en este caso, tenemos max_depth. La forma de llamarlo únicamente dentro de bagging es la que ya hemos mencionado.

#Ejemplo de bagging
maxDepthOptimo = 6
br = Bagging]Regressor (max_depth = maxDepthOptimo).fit (X_train, y_train)

print ("Train: ", rf.score (X_train, y_train))
print ("Test: ", rf.score (X_test, y_test))
Ejemplo de bagging 3
#Ejemplo de bagging
importances = np.mean ([tree.feature_importances_ for tree in br.estimators_], axis = 0)
importances = importances / np.max (importances)

indices = np.argsort (importances) [ : : - 1]

plt.figure (figsize = (10, 10))
plt.barh (range (X_train.shape [1]), importances [indices])
plt.yticks (range (X_train.shape [1]), feature_names [indices])
plt.show ()
Ejemplo de bagging

Como el BaggingRegressor no necesariamente funciona con árboles, sino que funciona con cualquier modelo que nosotros queramos, este no tiene implementado un método que calcule las feature importances. No lo tiene implementado porque no va a usarlo necesariamente, ya que no tenemos por qué disponer de un modelo dentro que permita usar feature importances. Entonces, como esto no está claro, no existe esta opción.

No obstante, en el caso de que nuestro modelo interno permita usar feature importances, lo que nos permite es acceder a cada una de las cosas que hay dentro del bagging. Es por eso que, en este caso, estimators_ se usa para ver la lista de estimators.

¿Qué sigue?

Si quieres seguir aprendiendo más sobre Big Data, una de las disciplinas más importantes en la actualidad, te invitamos a seguir el Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp, una formación intensiva de 8 meses de duración en la que adquirirás todas las herramientas teóricas y prácticas para seguir cumpliendo tus objetivos de ser un exitoso data scientist. Además, tendrás a los mejores profesionales acompañándote en todo momento y guiando tu camino hacia tus metas. ¡No le des más vueltas y solicita más información ahora!

👉 Descubre más del Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp ¡Descarga el temario!

👉 Prueba el Bootcamp Gratis por una Semana ¡Empieza ahora mismo!

👉 Conoce nuestros otros Bootcamps en Programación y Tecnología

[email protected]

La IA no te quitará el trabajo, lo hará quien sepa usarla

Conviértete en Data Scientist con el único Bootcamp que además te formará en Inteligencia Artificial Generativa para potenciar tu perfil.