#CATBoost
За что я не люблю катбуст - за постоянные сюрпризы и невозможность простого использования в стандартных пайплайнах. Есть же самая популярная ML-библитека scikit-learn и многие другие библиотеки в неё нормально интегрируются (xgboost, lightgbm и т.п.). Вот сейчас, в готовый код вставил
import catboost as cb
cb.CatBoostClassifier(subsample=0.6, iterations=50, learning_rate=0.3, depth=4, silent=True, random_seed=1)
и всё вывалилось с ошибкой "CatBoostError: You can't change params of fitted model." на строке
model.set_params(**{'random_seed': t});
Что, правда? После стольких лет разработки - нельзя динамически менять параметры?!
Поковырялся в исходниках - ошибка появляется после if self.is_fitted() (т.е. обученную модель не трогают).
Любой другой современный бустинг, имеющий в python-имплементации sklearn-совместимую функуцию нормально бы отработал, только надо было бы написать
model.set_params(**{'random_state': t});
За что я не люблю катбуст - за постоянные сюрпризы и невозможность простого использования в стандартных пайплайнах. Есть же самая популярная ML-библитека scikit-learn и многие другие библиотеки в неё нормально интегрируются (xgboost, lightgbm и т.п.). Вот сейчас, в готовый код вставил
import catboost as cb
cb.CatBoostClassifier(subsample=0.6, iterations=50, learning_rate=0.3, depth=4, silent=True, random_seed=1)
и всё вывалилось с ошибкой "CatBoostError: You can't change params of fitted model." на строке
model.set_params(**{'random_seed': t});
Что, правда? После стольких лет разработки - нельзя динамически менять параметры?!
Поковырялся в исходниках - ошибка появляется после if self.is_fitted() (т.е. обученную модель не трогают).
Любой другой современный бустинг, имеющий в python-имплементации sklearn-совместимую функуцию нормально бы отработал, только надо было бы написать
model.set_params(**{'random_state': t});