Size: a a a

2019 November 27

AD

Anna Veronika Dorogush in catboost_ru
Евгений
Catboost перестал писать в директорию catboost_info, но она всё-равно создаётся) просто она пустая теперь
Мне не мешает, в принципе
да, в новой версии это тоже поправлено будет
источник

D

Dasha in catboost_ru
Коллеги, продолжаю разбираться с CV в CatBoost
Получила scores для регрессии, RMSE достаточно высокий,
Однако хочу получить data-set с результирующим вектором  выходных переменных и посмотреть на него

Как это можно сделать? В документации сходу predict для CV не нашла, однако нашла пример на Kaggle (https://www.kaggle.com/aharless/simple-catboost-cv-lb-281 - CV там сделан вручную):
https://www.pastiebin.com/5dde5baa31392
источник

D

Dasha in catboost_ru
Dasha
Коллеги, продолжаю разбираться с CV в CatBoost
Получила scores для регрессии, RMSE достаточно высокий,
Однако хочу получить data-set с результирующим вектором  выходных переменных и посмотреть на него

Как это можно сделать? В документации сходу predict для CV не нашла, однако нашла пример на Kaggle (https://www.kaggle.com/aharless/simple-catboost-cv-lb-281 - CV там сделан вручную):
https://www.pastiebin.com/5dde5baa31392
Код моего примера:
cat_features = categorical_columns

cv_dataset = Pool(data=train_data,
                 label=train_label.tolist(),
                 cat_features=cat_features)

params = {"iterations": 100,
         "depth": 2,
         "loss_function": "RMSE",
         "verbose": False}

scores = cv(cv_dataset,
           params,
           fold_count=5,
           plot="True")
источник

D

Dasha in catboost_ru
Dasha
Коллеги, продолжаю разбираться с CV в CatBoost
Получила scores для регрессии, RMSE достаточно высокий,
Однако хочу получить data-set с результирующим вектором  выходных переменных и посмотреть на него

Как это можно сделать? В документации сходу predict для CV не нашла, однако нашла пример на Kaggle (https://www.kaggle.com/aharless/simple-catboost-cv-lb-281 - CV там сделан вручную):
https://www.pastiebin.com/5dde5baa31392
Буду благодарна за подсказку!
источник

A

Alexandr in catboost_ru
Dasha
Буду благодарна за подсказку!
просто обучаешь с нуля с такими же параметрами как в CV
источник

AD

Anna Veronika Dorogush in catboost_ru
Dasha
Код моего примера:
cat_features = categorical_columns

cv_dataset = Pool(data=train_data,
                 label=train_label.tolist(),
                 cat_features=cat_features)

params = {"iterations": 100,
         "depth": 2,
         "loss_function": "RMSE",
         "verbose": False}

scores = cv(cv_dataset,
           params,
           fold_count=5,
           plot="True")
Про "RMSE достаточно высокий" - я бы подумала над выбором параметров: набор "iterations": 100,  "depth": 2 не выглядит как что-то рабочее - с такими параметрами модель будет недообученная. Лучше использовать дефолтные параметры 1000 итераций и глубина 6 или подобрать что-то, у чего качество будет лучше дефолта.
источник

Аa

Андрей amber4eg in catboost_ru
Alexandr
просто обучаешь с нуля с такими же параметрами как в CV
Как в best_params
источник

A

Alexandr in catboost_ru
ну да, только нужное количество iterations, выбранное по early_stop
источник

D

Dasha in catboost_ru
Anna Veronika Dorogush
Про "RMSE достаточно высокий" - я бы подумала над выбором параметров: набор "iterations": 100,  "depth": 2 не выглядит как что-то рабочее - с такими параметрами модель будет недообученная. Лучше использовать дефолтные параметры 1000 итераций и глубина 6 или подобрать что-то, у чего качество будет лучше дефолта.
Спасибо большое, тогда такой вопрос: выбор числа итераций и глубины лежит в теоретических основах алгоритма и нужно читать эту часть или подобран исходя из опыта эмпирически?
источник

A

Alexandr in catboost_ru
Dasha
Спасибо большое, тогда такой вопрос: выбор числа итераций и глубины лежит в теоретических основах алгоритма и нужно читать эту часть или подобран исходя из опыта эмпирически?
количество итераций выбери по early_stop
источник

A

Alexandr in catboost_ru
точнее early_stopping_rounds
источник

AD

Anna Veronika Dorogush in catboost_ru
Количество итераций выбирается по тесту автоматически
источник

AD

Anna Veronika Dorogush in catboost_ru
Точнее так: модель по умолчанию обрезается до лучшей итерации по тесту
источник

AD

Anna Veronika Dorogush in catboost_ru
early_stopping_rounds нужен, чтобы время не тратить
источник

D

Dasha in catboost_ru
Anna Veronika Dorogush
Точнее так: модель по умолчанию обрезается до лучшей итерации по тесту
Это происходит непосредственно внутри функции CatBoostRegressor()? Верно ли, что параметр early_stopping_rounds останавливает итерации с учётом od_type = "Iter", od_wait = 100 - то есть обрезает N_iter_best или N_iter_best+100 итераций?

И вопрос касательно алгоритма (или подскажите, пожалуйста, где прочитать): как идентифицируется переобучение модели, по какому критерию, алгоритму, если RMSE должна продолжать снижаться при переобучении и early_stopping_rounds может не помочь? (Извините, если этот вопрос покажется нубским)
источник

A

Alexandr in catboost_ru
Dasha
Это происходит непосредственно внутри функции CatBoostRegressor()? Верно ли, что параметр early_stopping_rounds останавливает итерации с учётом od_type = "Iter", od_wait = 100 - то есть обрезает N_iter_best или N_iter_best+100 итераций?

И вопрос касательно алгоритма (или подскажите, пожалуйста, где прочитать): как идентифицируется переобучение модели, по какому критерию, алгоритму, если RMSE должна продолжать снижаться при переобучении и early_stopping_rounds может не помочь? (Извините, если этот вопрос покажется нубским)
early_stopping_rounds останавливает обучение, если скор  на тесте не растёт спустя N итераций
источник

A

Alexandr in catboost_ru
то есть твоя модель переобучается
источник

D

Dasha in catboost_ru
Alexandr
early_stopping_rounds останавливает обучение, если скор  на тесте не растёт спустя N итераций
Эти N итраций задаются od_wait?
источник

A

Alexandr in catboost_ru
нет
источник

A

Alexandr in catboost_ru
early_stopping_rounds
источник