Понимание деревьев классификатора CatBoost с категориальными функциями

Я использую CatBoost Classifier в python для обучения ускоренных деревьев. К сожалению, развертывание должно быть выполнено на другом языке программирования, поэтому я не могу использовать метод предсказания, который уже доступен, но я должен реализовать его сам. Я попытался экспортировать модель в файл JSON и пересмотреть деревья (таким образом, делая оценку) самостоятельно. Он прекрасно работает, когда нет категориальных функций. Однако, если я использую категорические функции (с горячим кодированием или без), я не понимаю значения в файле json. Например, у меня есть такое разделение в моем дереве:

{"split_index": 16, "cat_feature_index": 0, "value": 1127826985, "split_type": "OneHotFeature"}.

Функция, которая получает горячее кодирование (функция с cat_feature_index = 0), принимает в моих данных 4 разных значения (100 200 700 и 800). Я хотел бы знать, что именно делает этот сплит.

Более того, если я не использую горячее кодирование, одно из разделений выглядит так:

{"split_index": 15, "split_type": "OnlineCtr", "border": 4.99999999046, "ctr_target_border_idx": 0},

где функция и данные такие же, как указано выше. Что именно делает этот сплит?

Не могли бы вы, пожалуйста, сказать мне, где я могу найти объяснение деревьев и / или исходного кода, где определены расщепления в деревьях с категориальными признаками?

0 ответов

Другие вопросы по тегам