Size: a a a

2021 June 11

RY

Ruslan515 Y in catboost_ru
подскажи пж - есть ли готовая либа для многоклассовой классификации текста? в catboost удобно - можно для ускорения пропустить этап векторизации текста
источник

D

Dima in catboost_ru
бейзлайн вроде как tf-idf + svm/logreg и вроде быстро работает и качество достаточно неплохое, а так использовать bert)
не часто работаю с текстом, мб тебе кто-то подскажет более релевантную инфу
источник

RY

Ruslan515 Y in catboost_ru
ок. спасибо!
источник

D

Dima in catboost_ru
https://t.me/natural_language_processing
тут точно подскажут)
источник

A

Alexander V in catboost_ru
Есть вопрос как ускорить обучение со своим custom_loss  @kizill
* Если использовать стандартный лосс, то время на итерацию примерно 0.1 сек
* Если использую свой лосс, тогда время итерации увеличивается в 50 раз: до 5-7 секунд. Причём бОльшая часть времени тратится где-то внутри кэтбуста, мой лосс считается очень быстро.
* При этом lightgbm работает гораздо быстрее с тем же лоссом.

Думается, что что-то не так происходит.
https://pastebin.com/Liwhr33P  -- вот тут минимальный пример
источник

SK

Stanislav Kirillov in catboost_ru
А пробуешь на 0.26?
источник

SK

Stanislav Kirillov in catboost_ru
Попробуйте установить numba
источник

A

Alexander V in catboost_ru
сейчас попробую 0.26 + numba
источник

A

Alexander V in catboost_ru
Отлично. Гораздо быстрее и теперь почти сравнимо по скорости со стандартным лосом! Спасибо

Поизмерял:
* самый большой эффект дал апдейт 0.25 -> 0.26
* эффект от numba тоже есть, но небольшой
источник

SK

Stanislav Kirillov in catboost_ru
😻
источник

SK

Stanislav Kirillov in catboost_ru
Класс!
источник

A

Alexander V in catboost_ru
Ещё важный момент для ускорения catboost vs lightgbm:
X = np.array(X, order="F")


Без этого ужасно тормозит catboost почему-то.
источник

A

Alexander V in catboost_ru
Думаю вы можете проверять тип паддинга массива на входе и хотя бы warning писать. Ибо вообще не очевидно в чём проблема. @kizill
источник

SK

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

SK

Stanislav Kirillov in catboost_ru
Но в целом разница по скорости не должна быть катастрофической
источник

A

Alexander V in catboost_ru
import catboost as cb
from sklearn.datasets import make_regression

X, Y = make_regression(n_samples=500_000, n_features=100)

reg = cb.CatBoostRegressor(max_depth=6, n_estimators=10, learning_rate=0.1)

%timeit -r1 -n1 reg.fit(X, Y)

X = np.array(X, order="F")

%timeit -r1 -n1 reg.fit(X, Y)
источник

A

Alexander V in catboost_ru
Да, действительно, время самого обучения примерно такое. Но подготовка перед обучением (квантизация?) существенно дольше.
источник

SK

Stanislav Kirillov in catboost_ru
это время на python=>c++ передачу
источник

A

Alexander V in catboost_ru
у меня тут 16s  vs  1s.   Хотя массив сконвертировать можно за 0.3s
источник

W(

WaitForMeee (∩`-´)⊃━... in catboost_ru
@kizill когда обновится документация есть информация? интересует CatboostRanker, да и в целом уже многое устарело в документации и накопились неточности
источник