Понимание деревьев классификатора CatBoost с категориальными функциями - PullRequest
0 голосов
/ 07 декабря 2018

Я использую 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},

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

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

...