Gradient Boosting Machine: GBM Y Xgboost
Gradient Boosting Machine: GBM Y Xgboost
Gradient Boosting Machine: GBM Y Xgboost
GBM y XGBoost
Introducción al Machine Learning
https://scikit-learn.org/stable/tutorial/machine_learning_map/index.html
Modelo supervisados en Machine Learning I
Dado que el uso de la variable objetivo se intensifica en las técnicas de Machine Learning, para
contrastar que un algoritmo no se haya sobre ajustado (Overfitting) a los datos de entrada se utilizan
distintas técnicas:
Si el algoritmo ajusta mal el Train, hablamos de infra ajuste: Por ejemplo R 2 de un modelo de ingresos
muy bajo.
Por el contrario, un algoritmo puede ajustar muy bien el conjunto Train, pero poco el conjunto de Test.
Esto nos conduce al sobreajuste. Esto puede producirse cuando:
- El algoritmo utiliza demasiadas variables o de poca calidad
- El algoritmo utiliza demasiados parámetros de ajuste
- Utiliza muestra demasiado pequeñas
En Machine Learning existe una familia de técnicas orientadas a reducir el sobre ajuste. Se trata del
Ensemble o ensamblaje de modelos.
Algoritmos de Ensamblaje
https://scikit-learn.org/stable/modules/ensemble.html
Combina las estimaciones de varios modelos simples. Las dos técnicas de ensemble más
conocidas son el Bagging (Bootstrap aggregation) y el Boosting, que contiene le Gradient
Boosting Machine o GBM.
Algoritmos Bagging (Bootstrap aggregation)
El Bagging genera muestras aleatorias, ajusta el modelo y promedia el resultado de distintos modelo.
En esta familia se encuentra los Random Forests.
Algoritmos Boosting
Boosting, en cada iteración el modelo ajusta el error del anterior paso y agrega la
nueva predicción a las anteriores. En esta familia se encuentra los Gradient
Boosting Machine o GBM.
Árboles de decisión I
https://scikit-learn.org/stable/modules/tree.html
En cada iteración:
- Se obtiene la muestra de train y test
- Se ajusta un árbol de clasificación
- Se calcula el error del modelo (Mse o Gini)
- Se lanza un nuevo modelo sobre el error cometido en el
anterior paso
- Se iteran los pasos hasta que la separación entre el error de
train y de test converge a un valor razonable
En cada nueva iteración se obtiene un
nuevo sumado de la predicción final
Parámetros del modelo:
• XGBClassifier https://xgboost.readthedocs.io/en/latest/python
• n_estimators /python_api.html
• objective = 'binary:logistic'
• eval_metric = "logloss" https://xgboost.readthedocs.io/en/stable/param
eter.html
• eta=0.01
• max_depth = 6
• min_child_weight = 10
• XGBRegressor
• subsample = 0.75
• n_estimators
• colsample_bytree=0.5
• objective = 'reg:squarederror'
• monotone_constraints=(1,1,-1,1)
• seed=123
Parámetros del modelo:
https://xgboost.readthedocs.io/en/stable/python/python_api.html
• n_estimators: Número de iteraciones o arboles. Este parámetros se ajusta el ultimo, una vez optimizados
el resto de parámetros.
• objective
• objective = 'reg:squarederror’: Cuando la variable respuesta es numérica continua.
• objective = 'binary:logistic’ : Cuando la variable respuesta es binaria (0 o 1)