RandomizedSearchCV для XGboost, несбалансированный набор данных и оптимальное количество итераций (n_iter) - PullRequest
1 голос
/ 23 мая 2019

Я работаю над несбалансированной (9: 1) проблемой двоичной классификации и хотел бы использовать Xgboost & RandomizedSearchCV.

Как показано в коде, 472,50,000 (5 * 7 * 5 * 5 *)5 * 5 * 6 * 4 * 9 * 10) комбинации гиперпараметров.При 10-кратном CV вышеуказанное число становится 472 500 000 (4,725 млн.)

. Обычно рекомендуется для randomizedsearchcv брать 5-10% от общего числа комбинаций.5-10% от 4,725 млн. Было бы очень большим числом.

Поэтому мой вопрос в том, что было бы хорошим значением n_iter , чтобы получить хорошие результаты в разумные сроки./ вычислительная эффективность?

Примечание к потенциальному запросу: некоторые параметры, такие как 'scale_pos_weight', 'max_delta_step' обычно не настраиваются, но я включил их, поскольку мои данные несбалансированы.

Спасибо!

param_dist= {
              "max_depth": [2,3,4,5,6],
              "learning_rate":[0.01,0.02,0.03,0.05,0.1,0.3,0.5],
    "min_child_weight":[1,2,3,4,5],
              "subsample":[i/10.0 for i in range(6,10)],
 "colsample_bytree":[i/10.0 for i in range(6,10)],
               "reg_alpha":[1e-5, 1e-2, 0.1, 1, 100],
              "gamma":[i/10.0 for i in range(0,5)],
    "n_estimators":[100,500,700,1000],
    'scale_pos_weight':[1,2,3,4,5,6,7,8,9],
    'max_delta_step': range(1,10,1)

              }

1 Ответ

1 голос
/ 23 мая 2019

Добавление комментариев в качестве ответа.

Ваш вопрос зависит от того, сколько времени потребуется для обучения модели в среднем и сколько для вас разумно.

Это рандомизированный поиск.Таким образом, нет гарантии, что оптимальные параметры найдены, даже если вы берете 90% комбинаций.Также существует вероятность, что оптимальные параметры могут быть в 10 выбранных вами комбинациях.Я предлагаю прочитать о параметрах и попытаться исправить некоторые из них в зависимости от вашего набора данных и функций.

Прежде всего вам не нужно настраивать scale_pos_weight.Вы должны исправить это на 9, так как у вас есть несбалансированный набор данных 9: 1.

Также такие параметры, как скорость обучения, могут не зависеть от других параметров.Вы можете оставить их и настроить их отдельно.

...