6 votos

Orden de ajuste XGBoost

Un bosque aleatorio en XGBoost tiene muchos hiperparámetros que ajustar. He visto ejemplos en los que la gente busca sobre un puñado de parámetros a la vez y otros en los que buscan sobre todos ellos simultáneamente. ¿Qué métodos existen para ajustar los hiperparámetros de XGBoost? ¿Cuál es la lógica de estos métodos?

2voto

David K. Hess Puntos 206

He aquí un buen artículo sobre el tema:

Guía completa para el ajuste de parámetros en XGBoost (con códigos en Python)

Además, algunas personas han tenido éxito utilizando hiperopt para ajustar los hiperparámetros. Amine Benhalloum proporciona código Python para ajustar XGBoost: https://github.com/bamine/Kaggle-stuff/tree/master/otto

2voto

Slavik Puntos 1
param_grid = {
    'silent': [1],
    'max_depth': [4,5,6,7],
    'learning_rate': [0.001, 0.01, 0.1, 0.2, 0,3],
    'subsample': [0.5, 0.6, 0.7, 0.8, 0.9, 1.0],
    'colsample_bytree': [0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0],
    'colsample_bylevel': [0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0],
    'min_child_weight': [0.5, 1.0, 3.0, 5.0, 7.0, 10.0],
    'gamma': [0, 0.25, 0.5, 1.0],
    'reg_lambda': [0.1, 1.0, 5.0, 10.0, 50.0, 100.0],
    'n_estimators': [100]}
    fit_params = {'eval_metric': 'logloss',
          'early_stopping_rounds': 10,
          'eval_set': [(X_train_tfidf, y_train_tfidf)],
          'verbose' : False
          }

    clf = xgb.XGBClassifier(n_jobs=-1)
    randomized_search = RandomizedSearchCV(clf, param_grid, n_iter=30,
                        n_jobs=-1, verbose=0, cv=5,
                        fit_params=fit_params,
                        scoring='neg_log_loss', refit=False, random_state=42)
    randomized_search.fit(X_train, y_train)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X