Gradient Boosting Machine: GBM Y Xgboost

Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 15

Gradient Boosting Machine:

GBM y XGBoost
Introducción al Machine Learning

Inteligencia Artificial  IA: Busca imitar el comportamiento humano


https://www.youtube.com/watch?v=Hsv6cmDdt5g
 ML: El algoritmo “aprende” de los
Machine Learning resultados
 Aquí se engloba el Gradient Boosting Machine
 Aparece la problemática del sobre ajuste

Deep Learning  DL: Aprender con datos no estructurados:


Imágenes, sonido, texto…
GBM dentro de sklearn
https://scikit-learn.org/stable/

Gradient Boosting Machine


se sitúa dentro de los
algoritmos supervisados de
tipo Ensamblador, tanto de
Regresión como de
Clasificación.

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:

Una forma controlar el nivel de sobre ajuste es el uso de 3 muestras:

- Train: Sirve para que el algoritmo aprenda de los datos etiquetados


- Validación: Permite contrastar si el algoritmo ajustado con los datos de train tienen un buen ajuste
sobre estos datos que el algoritmo no ha visto. Ayuda a escoger los mejores parámetros del modelo.
- Test: Sólo se evalúa al final para saber el rendimiento del modelo.
Modelo supervisados en Machine Learning II

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

El grafo permite saber las variables y tramos intervienen y la


predicción sobre los nodos finales (algoritmo de tipo White Box).

Scikit-Learn está basado en el denominado CART (Classification


and Regression Tree) que sólo se subdivide en dos ramas por
cada decisión.
Árboles de decisión II
En cada paso se divide por la variable y tramo con mayor
Ganancia de información (mínimo coste) creando dos nuevos
nodos:

- Arboles de clasificación: Variable objetivo discreta. Utilizan


como medida de coste el Gini:
Gini: = 1 – sum(prob^2), prob es la probabilidad observada de cada
nodo. Se promedian los 2 nodos por el % de casos

- Árboles de regresión: Variable objetivo continua. Utilizan


como medida de coste el error mínimo cuadrático (mse):
MSE = sum(y_pred – y_real)^2, se promedian los 2 nodos por el %
de casos
Gradient Boosting Machine: GBM
Se trata de un algoritmo muy predictivo y se utiliza en Banca como
sustituto de los modelos clásicos de regresión lineal o logística...

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)

• eval_metric = “rmse“: http://en.wikipedia.org/wiki/Root_mean_square_error


• eval_metric = "logloss“: https://en.wikipedia.org/wiki/Likelihood_function#Log-likelihood
Parámetros del modelo:
https://xgboost.readthedocs.io/en/stable/python/python_api.html

• eta o learning_rate = 0.01: velocidad de aprendizaje.


• max_depth = 6: Profundidad máxima.
• min_child_weight = 10: Número mínimo de casos en un nodo hijo.
• subsample = 0.75: Porcentaje de casos utilizados en el entreno.
• colsample_bytree = 0.5: Porcentaje de columnas en la construcción del árbol.
• monotone_constraints = (1,0,-1): Restricción de las monotonías de las variables.
• seed = 123: Semilla de aleatorización.
Bibliografia
• Datos de Fraude: Worldline and the Machine Learning Group (http://mlg.ulb.ac.be ) of ULB (Université Libre de
Bruxelles) on big data mining and fraud detection.
• Datos de contratación de depósitos a plazo: http://archive.ics.uci.edu/ml/datasets/Bank+Marketing#
• XGBoost Documentation. https://xgboost.readthedocs.io/en/latest/
• Tutorial de XGBoost en Python. https://medium.com/@jboscomendoza/tutorial-xgboost-en-python-53e48fc58f73
• J. VanderPlas. Python Data Science Handbook. O’Reilly Media, Inc.; 2016. Disponible en:
http://faculty.marshall.usc.edu/gareth-james/ISL/
• Ge, D., Gu, J., Chang, S., & Cai, J. H. (2020). Credit Card Fraud Detection Using Lightgbm Model. 2020 International
Conference on E-Commerce and Internet Technology (ECIT). https://doi.org/10.1109/ecit50008.2020.00060
• Hué, S. & Hurlin, C. & Tokpavi, S. (2018). Machine Learning for Credit Scoring: Improving Logistic Regression with Non-
Linear Decision Tree Effects.
• Khandani, A. E., Kim, A. J., & Lo, A. W. (2010). Consumer credit-risk models via machine-learning algorithms. Journal of
Banking & Finance, 34(11), 2767–2787. https://doi.org/10.1016/j.jbankfin.2010.06.001

También podría gustarte