Size: a a a

2021 March 12

L

L in catboost_ru
Andrei Khropov
Зачем?
Вот есть такая задача)
источник

AB

Alexey Belyaev in catboost_ru
Andrei Khropov
Зачем?
Скорее всего, автор не хочет заружать в память весь датасет, так как он не помещается в гпу, а хочет, как при обучении нейронок, на каждой итерации читать с диска небольшими порциями.
источник

AK

Andrei Khropov in catboost_ru
Не очень понятен ее смысл. 1 итерации для обучения более-менее приемлемого качества будет недостаточно.
источник

AK

Andrei Khropov in catboost_ru
Если перезагружать датасет на каждую итерацию - будет очень медленно.
источник

AB

Alexey Belyaev in catboost_ru
Andrei Khropov
Не очень понятен ее смысл. 1 итерации для обучения более-менее приемлемого качества будет недостаточно.
И итерация не одна, весь датасет (или его подмножество) перебирается, каждый раз перечитывая диск
источник

AB

Alexey Belyaev in catboost_ru
Andrei Khropov
Если перезагружать датасет на каждую итерацию - будет очень медленно.
Думаю, многие готовы заплатить временем за возможность обучаться на терабайте данных.
Если это конечно не ломает каких-то предварительных обработок всего датасета: бордеры там расставить и тп
источник

AK

Andrei Khropov in catboost_ru
Если дело действительно в размере датасета, то можно порекомендовать предварительную внешнюю квантизацию, это может снизить требования к размеру CPU RAM, но квантизованные данные все равно должны целиком помещаться в CPU или GPU (если обучение на GPU) RAM.
источник

AK

Andrei Khropov in catboost_ru
Можно учить по одной итерации подставляя результат предыдущей в init_model
источник

AK

Andrei Khropov in catboost_ru
но оверхед на загрузку данных будет очень большим по сравнению с временем итерации, особенно если речь про GPU.
источник

AK

Andrei Khropov in catboost_ru
Думаю настолько большим, что скорее всего не будет смысла учить на GPU
источник

AB

Alexey Belyaev in catboost_ru
Andrei Khropov
Можно учить по одной итерации подставляя результат предыдущей в init_model
Да, это и практикуем
источник

AB

Alexey Belyaev in catboost_ru
Andrei Khropov
Думаю настолько большим, что скорее всего не будет смысла учить на GPU
Ну, можно ведь и не по одному примеру загружать, а десятую часть, например, и так десять раз.

В общем был бы крайне полезен проработанный фреймворк по использованию генераторов, которые должны читать данные пачками, основанный на init_model, но чтобы задумывался об этих тонкостях не юзер. Юзер бы просто написал генератор по вашим спецификациям
источник

AB

Alexey Belyaev in catboost_ru
Возможно, для этого есть какие-то фундаментальные ограничения, связанные с невозможностью препроцессинга без загрузки всех данных. Но если это не так, было бы здорово увидеть когда-нибудь в катбусте api генераторов как в keras
источник

D

DU in catboost_ru
Добрый вечер. В версии CLI можно где-то указать "," как десятичный разделитель?
источник

D

DU in catboost_ru
По дефолту "."
источник

AK

Andrei Khropov in catboost_ru
Нет. Могу только посоветовать препроцессинг с заменой "," -> '.'.
источник
2021 March 13

D

DU in catboost_ru
Ага, так делаю сейчас. Думал может есть параметр. Спасибо.
источник

PB

Polina Bezrukavaja in catboost_ru
Кейс: очень маленький датасет (на 800 объектов). Задача бинарной классификации. При перемене random_state СИЛЬНО скачат метрики, зафиксированны перепады до 20 проц при чем roc_auc падает, f1 растет и наоборот. GridSearchCV best score выдает всегда значительно ниже чем последующий best estimator отдельно. Есть гипотеза,  что часть объектов очень полезна для модели и хорошо ее обучает и когда эти оъекты выпадают из train, модель начинает хуже предсказывать. Можно ли как то достоверно проверить это? выявить эти объекты?
источник

PB

Polina Bezrukavaja in catboost_ru
Я думаю сделать несколько кроссвалидаций вручную и отследить в каких фолдах скор лучше есть ли достоверная зависимость в содержащихся объектах по индексам. но это такааая отсебятина, может какие то умные люди уже чтото придумали нормальное человеческое
источник

A

Andrew in catboost_ru
Polina Bezrukavaja
Я думаю сделать несколько кроссвалидаций вручную и отследить в каких фолдах скор лучше есть ли достоверная зависимость в содержащихся объектах по индексам. но это такааая отсебятина, может какие то умные люди уже чтото придумали нормальное человеческое
Можно забутстрапить, и посмотреть на распределение. Если оно явно ненормально перекошенное, то это может быть доводом в пользу теории. Еще, развивая идею ресемплинга, можно по ним посчитать корреляцию (присутствие примера) vs (итоговые метрики).
Из конкретно катбустовых, где-то в районе feature importance могли лежать аналогичные оценки для сэмплов, тут я точно не помню и не сориентирую.
источник