Использую деревья классификации из OpenCV. Возникла необходимость отобразить дерево графически, чтобы сравнить с результатами другого ПО. Т.е. нужно получить что-то вроде такого
b6 < 15.5
/ \
b1 < 27.5 b1 < 13.5
/ \ / \
2 1 2 1
Сохранил дерево в формате YAML, начал разбираться... Как я понял, в начале идет общая информация о количестве параметров и настройках, используемых при построении дерева. Узлы идут после ключевого слова "nodes" и вот с ними у меня проблемы.
Не понятно как выстроить иерархию, по идее, на "глубину залегания" узла указывает параметр depth, но в файле может быть несколько узлов c одинаковым значением depth (например, 6 узлов с depth=4). Как быть в таком случае, дерево же бинарное, и на одном уровне должно быть только два узла? Вторая проблема - в одном узле может быть указано несколько условий (сплитов). Как я понимаю, часть из них - суррогатные сплиты. Но какой является основными, а какие - дополнительными (суррогатными) не понятно.
Просмотрел официальную документацию и книгу Learning OpenCV, но ни там, ни там практически ничего по теме не нашел. Буду рад любой помощи.