Size: a a a

2019 March 04

ND

Nikita Dmitriev in catboost_ru
Dmitry Buslov
Всем привет! Народ, а подскажите плиз как в катбусте сделать колбек для изменения параметров деревьев? Хочу чтобы начиная с определенной итерации деревья была на 1-у глубже...
Привет!
Только если руками поменять код
Вот тут https://github.com/catboost/catboost/blob/master/catboost/libs/train_lib/train_model.cpp#L364
, например, можно добавить:
if (iter == 100) {
   ++ctx->Params.ObliviousTreeOptions->MaxDepth;
}
источник

ND

Nikita Dmitriev in catboost_ru
Vad C
Здравствуйте, Недавно начал использовать КатБуст, но так и немогу понять что происходит с данными перед тем как они попадают в модель, а конкретно делается ли принудительный препроцессинг кат бустом или нет? Например делается ли принудительно OneHot для кат переменных, как я понял для численных факторов применяется принудительно одна из выбранных стратегий,  и можно ли и как отключить препроцессинг если я сам хочу препроцессить данные?
Привет!
Для числовых фичей делается только бинаризация (https://tech.yandex.com/catboost/doc/dg/concepts/binarization-docpage/), категориальный фичи никак не предобрабатываются перед обучением, их обработка идет прям в процессе обучения. Это нужно для того, что бы сэкономить память. Так что из препроцессинга у нас только бинаризация числовых фичей, которая необходима обучению и отключить её нельзя.
А как ты хочешь пропроцессить данные?
источник

ND

Nikita Dmitriev in catboost_ru
Anton Kuznetsov
Привет, ребят подскажите, хочю добавить модель catboost в кликхаус. На сервер через pip ставлю catboost, в конфиг КХ добавляю -
<catboost_dynamic_library_path>/usr/lib64/python2.7/site-packages/catboost/_catboost.so</catboost_dynamic_library_path>
Но выпадает ошибка - Code: 375, e.displayText() = DB::Exception: Cannot dlopen: /usr/lib64/python2.7/site-packages/catboost/_catboost.so: undefined symbol: PyExc_KeyboardInterrupt
Привет!
А кликхаус ты запускаешь под тем же питоном, для которого поставил катбуст?
источник

VC

Vad C in catboost_ru
"А как ты хочешь пропроцессить данные?"  Кат-фичи-OneHot,  Числовые-тут большое кол-во методов кластеризация(много вариаций), топ, частоты, средние...
источник

AK

Anton Kuznetsov in catboost_ru
Nikita Dmitriev
Привет!
А кликхаус ты запускаешь под тем же питоном, для которого поставил катбуст?
КХ запускаю не из под питона. Я нашел способ как запустить но костыльный, нашел доккр образ с примером работы и от туда выкачал скомпилинные файлы катбуста копирнул их себе на сервер и заработало
источник

VC

Vad C in catboost_ru
"категориальный фичи никак не предобрабатываются перед обучением, их обработка идет прям в процессе обучения " Т.е. неважно как выглядить кат фича: это string, href, хэш или onehot? А что там за обработка прям в процессе? для чего тогда опция one_hot_max_size?
источник

ND

Nikita Dmitriev in catboost_ru
Vad One-hot для кат фичей мы рекомендуем не делать, так как обычно от этого бывает только хуже (обучение будет работать дольше, так как вырастет объем пула). Числовые можно как угодно обрабатывать (делать из них категориальные или превращать в другие числовые).

Параметр one_hot_max_size задает число уникальных значений кат фичи, до которого эта фича будет препроцесситься как one-hot, а если число уникальных значений катфичи больше one_hot_max_size, то катфича будет препроцесситься другим образом (будут считаться счетчики, подробнее можно прочитать тут: http://learningsys.org/nips17/assets/papers/paper_11.pdf)
источник

VC

Vad C in catboost_ru
Nikita Dmitriev
Vad One-hot для кат фичей мы рекомендуем не делать, так как обычно от этого бывает только хуже (обучение будет работать дольше, так как вырастет объем пула). Числовые можно как угодно обрабатывать (делать из них категориальные или превращать в другие числовые).

Параметр one_hot_max_size задает число уникальных значений кат фичи, до которого эта фича будет препроцесситься как one-hot, а если число уникальных значений катфичи больше one_hot_max_size, то катфича будет препроцесситься другим образом (будут считаться счетчики, подробнее можно прочитать тут: http://learningsys.org/nips17/assets/papers/paper_11.pdf)
Т.е. с кат фичами вообще ничего не делать и неважно что там string, хэш, int? я правильно понял? И что там за магия хоть намекните? Не пойму... вы считаете OneHot вредным, ну если не брать память в расчет, то OneHot на мой взгляд лучшее решение...
источник

VC

Vad C in catboost_ru
Как отключить логи или указать другую папку? логи просто огромные..
источник

ND

Nikita Dmitriev in catboost_ru
Vad C
Т.е. с кат фичами вообще ничего не делать и неважно что там string, хэш, int? я правильно понял? И что там за магия хоть намекните? Не пойму... вы считаете OneHot вредным, ну если не брать память в расчет, то OneHot на мой взгляд лучшее решение...
Не важно что там, так как всегда перед обучением от всех катфичей берется хэш и они все превращаются в int

One-hot не вредные
Просто они лучше работают, когда уникальных значений у катфичи мало
Когда много - лучше работают счетчики
Магии никакой нет, просто колонка с катфичей заменяется на числовую колонку с некоторыми статистиками, которые считаются по колонке с катфичей
источник

ND

Nikita Dmitriev in catboost_ru
Vad C
Как отключить логи или указать другую папку? логи просто огромные..
allow_writing_files=False
train_dir='tmp_dir' - указание папки
источник

VC

Vad C in catboost_ru
при отключении логов plot в jupytere будет рисоваться?
источник

ND

Nikita Dmitriev in catboost_ru
нет
источник

DB

Dmitry Buslov in catboost_ru
Nikita Dmitriev
Привет!
Только если руками поменять код
Вот тут https://github.com/catboost/catboost/blob/master/catboost/libs/train_lib/train_model.cpp#L364
, например, можно добавить:
if (iter == 100) {
   ++ctx->Params.ObliviousTreeOptions->MaxDepth;
}
спс
источник

VC

Vad C in catboost_ru
А как получить лучшие параметры модели полученные на кросс-валидации,
источник

AD

Anna Veronika Dorogush in catboost_ru
Кросс-валидация не подбирает параметры же. Можно только на число итераций посмотреть.
источник

AD

Anna Veronika Dorogush in catboost_ru
Параметры можно подбирать, например, при помощи гиперопта
источник

VC

Vad C in catboost_ru
Сорян, некорректный вопрос. А на что число итераций влияет в модели, на длинну дерева? Этот параметр вообще нужно подбирать?
источник

YB

Yury B in catboost_ru
Vad C
Сорян, некорректный вопрос. А на что число итераций влияет в модели, на длинну дерева? Этот параметр вообще нужно подбирать?
1) Нет 2) число итераций нужно подбирать исходя из того, как модель обучается и при каком learning rate
источник

VC

Vad C in catboost_ru
Можно ли что то вызвать чтобы получить кол-во итераций с макс. скором для всех фолдов?
источник