Size: a a a

2019 February 04

Аa

Андрей amber4eg in catboost_ru
Andrei Khropov
Если перевести из int32 во float32 будет еще быстрее.
Да? Попробую
источник

AK

Andrei Khropov in catboost_ru
просто внутри catboost использует float32, если ему также передать он не будет перекодировать (и тратить на это память)
источник

Аa

Андрей amber4eg in catboost_ru
время на 100 шагов:
всё по 64 бита = 2m 26s
есть int32 = 2m 20s
всё float32 - 2m 18s
источник

Аa

Андрей amber4eg in catboost_ru
метрики в 7м знаке одинаковые)
источник

MK

Maxim Khrisanfov in catboost_ru
я у себя в проекте использую такой код при чтения датасета с диска

x = pd.read_csv(path,
             sep=sep,
             index_col=index,
             dtype=get_data_types(path, sep=sep, index=index, target=target))


def get_data_types(path, sep='\t', index=None, target=None, n_rows=100):
   data = pd.read_csv(path, sep=sep, index_col=index, nrows=n_rows)

   dtypes = data.dtypes.map({
       np.dtype('int64'): 'int32',
       np.dtype('float64'): 'float32',
       np.dtype('object'): 'category'
   }).to_dict()

   if target:
       dtypes[target] = 'object'

   return dtypes
 

экономит память и время на повторной конвертации типов
источник

MK

Maxim Khrisanfov in catboost_ru
то есть функция get_data_types читает первые 100 строк датасета смотрим какие там типы
источник

MK

Maxim Khrisanfov in catboost_ru
помогает если датасет гигабайты
источник

MK

Maxim Khrisanfov in catboost_ru
Андрей amber4eg
время на 100 шагов:
всё по 64 бита = 2m 26s
есть int32 = 2m 20s
всё float32 - 2m 18s
по памяти же наверняка выиграл?
источник

Аa

Андрей amber4eg in catboost_ru
Maxim Khrisanfov
по памяти же наверняка выиграл?
ну оно там прыгает сильно в процессе, поэтому сложно сказать. Но вроде да, выиграл
источник

AD

Anna Veronika Dorogush in catboost_ru
Fedor Zaytsev
А можете подсказать на что CatboostEvaluation требует огромное количество места на диске? У меня датасет на ~4гб, делаю evaluation для одной фичи на 5 фолдах и при этом catboost забивает все 25 гигов диска на сервере. Сколько ему нужно тогда места?
@noxoomo подскажешь?
источник

VE

Vasily Ershov in catboost_ru
а что тестируешь? если категориальные фичи, то там модель может занимать много места
источник
2019 February 05

SZ

Sasha Zhu in catboost_ru
Привет!
При тестировании модели возникает такая ошибка:
TypeError: Cannot convert 'b'8859030FR'' to float
источник

SZ

Sasha Zhu in catboost_ru
Нашла на гитхабе похожее, но не совсем понимаю, в чем причина проблемы
источник

SZ

Sasha Zhu in catboost_ru
Может кто-нибудь помочь?
источник

Аa

Андрей amber4eg in catboost_ru
вангую - ты делаешь предикт моделью, которую считал с диска. В той модели категориальной фичи нет. А в данных, которые подал на вход предикту - есть.
источник

SZ

Sasha Zhu in catboost_ru
Андрей amber4eg
вангую - ты делаешь предикт моделью, которую считал с диска. В той модели категориальной фичи нет. А в данных, которые подал на вход предикту - есть.
неа
источник

Аa

Андрей amber4eg in catboost_ru
А красивая была версия.
Вот именно так оно ругается именно в такой ситуации.
источник

SZ

Sasha Zhu in catboost_ru
Андрей amber4eg
А красивая была версия.
Вот именно так оно ругается именно в такой ситуации.
ладно, ты был прав, не заметила еще одну кат-фичу
источник

AS

Arthur Suilin in catboost_ru
Коллеги, вопрос, как быстро скормить кэтбусту in-memory данные, лежащие в pd.DataFrame?
Если создавать Pool из dataframe, кэтбуст будет идти по нему через DataFrame.itertuples(), что довольно небыстро, т.к. происходит boxing из numpy массивов в Питон, а потом unboxing из Питона в C++.

Если использовать FeaturesData, будет ещё медленнее. У меня все категорийные переменные хранятся в integers (строки просто не влезут в память), а FeaturesData хочет, чтобы все категорийные данные были исключительно питоновскими строками (почему?). В результате имеем тот же boxing-unboxing, ещё и с перерасходом памяти.

Есть какой нибудь способ напрямую скормить числа из numpy?
источник

Аa

Андрей amber4eg in catboost_ru
Sasha Zhu
ладно, ты был прав, не заметила еще одну кат-фичу
источник