Size: a a a

2021 January 15

ВК

Вячеслав Колосков... in catboost_ru
Andrei Khropov
Сегодня будет апдейт
шел 228 день лета... :)
источник

d

dmitry in catboost_ru
Пытаюсь понять, почему когда я уменьшил размер датасета в 8 раз, скорость выросла всего в полтора раза. Понимаю вопрос довольно общий, но куда копать в первую очередь?
Размер датасета (до уменьшения): 400к x 500, много категориальных фич, моделька обучается 400 итераций на CPU (60 ядер) примерно 2 минуты (хочется чтобы было секунд 20)
источник

L

LS in catboost_ru
dmitry
Пытаюсь понять, почему когда я уменьшил размер датасета в 8 раз, скорость выросла всего в полтора раза. Понимаю вопрос довольно общий, но куда копать в первую очередь?
Размер датасета (до уменьшения): 400к x 500, много категориальных фич, моделька обучается 400 итераций на CPU (60 ядер) примерно 2 минуты (хочется чтобы было секунд 20)
Только если попробовать другой вид бустинга asymmetric trees, хотя я на своём датасете большой разницы не увидел.

Кстати если сказать наоборот, «увеличил датасет в 8 раз, а скоростьупала всего в полтора раза» звучит гораздо позитивнее)
источник

SK

Stanislav Kirillov in catboost_ru
тут надо зарезать комбинации, как обычно
источник

SK

Stanislav Kirillov in catboost_ru
и посмотреть на скейлинг
источник

SK

Stanislav Kirillov in catboost_ru
при обучении с катфичами на каждой итерации есть этап ренумерации и подсчета счетчиков, который не очень масштабируется
источник

L

LS in catboost_ru
Stanislav Kirillov
тут надо зарезать комбинации, как обычно
Можно этот момент по подробнее объяснить? Или пример кинуть?
источник

SK

Stanislav Kirillov in catboost_ru
max_ctr_complexity = {1,2,3}
источник

SK

Stanislav Kirillov in catboost_ru
начать с 1
источник

SK

Stanislav Kirillov in catboost_ru
посмотреть на скорость обучения/качество
источник

SK

Stanislav Kirillov in catboost_ru
расстроиться качеству, поднять до 2
источник
2021 January 16

L

LS in catboost_ru
Понятно, теперь запомню что max_ctr_complexity, это про комбинации.
источник

AC

Andrey Chankin in catboost_ru
LS
Понятно, теперь запомню что max_ctr_complexity, это про комбинации.
YouTube
089. Мастер класс Решение задач классификации при помощи CatBoost –  Никита Дмитриев
PyData Moscow, 13 октября 2018 г.

Градиентный бустинг — метод машинного обучения, появление которого привело к прорыву в решении многих задач, включая поиск в интернете, создание рекомендательных систем и прогнозирование погоды. На протяжении многих лет он остаётся основным методом работы с неоднородными признаками, зашумлёнными данными и сложными зависимостями.

CatBoost — это библиотека градиентного бустинга с открытым исходным кодом. Она превосходит по качеству аналоги и имеет дополнительные преимущества. CatBoost поддерживает работу с категориальными признаками (например, жанрами музыки, ID устройства, URL и т. д.) без предобработки данных. У него очень хорошие дефолтные параметры, поэтому их не нужно настраивать для получения качественных моделей. А GPU-реализация CatBoost — самая быстрая среди общедоступных реализаций градиентного бустинга.

С возможностями библиотеки мы будем знакомиться на примере решения задачи классификации. Вместе мы пройдём все этапы построения модели прогнозирования и рассмотрим…
источник

d

dmitry in catboost_ru
Andrey Chankin
YouTube
089. Мастер класс Решение задач классификации при помощи CatBoost –  Никита Дмитриев
PyData Moscow, 13 октября 2018 г.

Градиентный бустинг — метод машинного обучения, появление которого привело к прорыву в решении многих задач, включая поиск в интернете, создание рекомендательных систем и прогнозирование погоды. На протяжении многих лет он остаётся основным методом работы с неоднородными признаками, зашумлёнными данными и сложными зависимостями.

CatBoost — это библиотека градиентного бустинга с открытым исходным кодом. Она превосходит по качеству аналоги и имеет дополнительные преимущества. CatBoost поддерживает работу с категориальными признаками (например, жанрами музыки, ID устройства, URL и т. д.) без предобработки данных. У него очень хорошие дефолтные параметры, поэтому их не нужно настраивать для получения качественных моделей. А GPU-реализация CatBoost — самая быстрая среди общедоступных реализаций градиентного бустинга.

С возможностями библиотеки мы будем знакомиться на примере решения задачи классификации. Вместе мы пройдём все этапы построения модели прогнозирования и рассмотрим…
👍
источник
2021 January 19

TB

Taras B in catboost_ru
ЧЯДНТ?
def fit_model(train_pool, test_pool, **kwargs):
   model = CatBoostClassifier(
       random_seed=0,
       max_ctr_complexity=1,
       task_type='GPU',
       iterations=10000,
       eval_metric='AUC',
       od_type='Iter',
       od_wait=500,
       learning_rate=0.03,
       **kwargs
   )

   return model.fit(
       train_pool,
       eval_set=test_pool,
       verbose=1000,
       plot=False,
       use_best_model=True
   )


model_embeddings = fit_model(
   train_pool, test_pool,
   dictionaries = [{
       'dictionaryId': 'Unigram',
       'max_dictionary_size': '50000',
       'gram_count': '1',
   },{
       'dictionaryId': 'Bigram',
       'max_dictionary_size': '50000',
       'gram_count': '2',
   }]    
)


CatBoostError: catboost/private/libs/options/text_processing_options.cpp:75: DictionaryOptions: no dictionary_id was specified


версия 0.24.3

Как-то по документации хочется побольше информации в части работы с текстом
источник
2021 January 20

SK

Stanislav Kirillov in catboost_ru
Ой, в доке нужно поменять кейзинг
источник

SK

Stanislav Kirillov in catboost_ru
dictionaryId => dictionary_id
источник

TB

Taras B in catboost_ru
ничего не поменялось в ошибке
model_embeddings = fit_model(
   train_pool, test_pool,
   dictionaries = [{
       'dictionary_id': 'Unigram',
       'max_dictionary_size': '50000',
       'gram_count': '1',
   },{
       'dictionary_id': 'Bigram',
       'max_dictionary_size': '50000',
       'gram_count': '2',
   }]    
)
источник

TB

Taras B in catboost_ru
Stanislav Kirillov
Ой, в доке нужно поменять кейзинг
есть еще какие-нибудь идеи как запустить обучение со словарями?
источник

ND

Nikita Dmitriev in catboost_ru
Taras B
есть еще какие-нибудь идеи как запустить обучение со словарями?
Помимо параметра dictionaries нужно еще указать tokenizers и feature_calcers
Попробуй вот так:
tokenizers=[{'tokenizer_id': 'Space'}],
   dictionaries = [{
       'dictionary_id': 'Unigram',
       'max_dictionary_size': '50000',
       'gram_count': '1',
   },{
       'dictionary_id': 'Bigram',
       'max_dictionary_size': '50000',
       'gram_count': '2',
   }],
   feature_calcers=['BoW']
источник