У меня есть обученный экземпляр DecisionTreeClassifier
, и я на самом деле интересуюсь предикатами самого базового дерева решений. Так что мне нужен чистый способ прохождения этого дерева.
Так как единственный официальный способ получитьОбходное представление выполняется путем экспорта в файл graphviz / dot с использованием функции scikit export_graphviz
.После этого я могу проанализировать и проанализировать графическое представление дерева, используя, например, комбинацию networkx и pydot.
Но ...
содержимое моего конкретного точечного файла выглядит следующим образом:
digraph Tree {
node [shape=box] ;
0 [label="X[0] <= 15.0\ngini = 0.75\nsamples = 8\nvalue = [2, 2, 2, 2]"] ;
1 [label="X[1] <= 3.0\ngini = 0.5\nsamples = 4\nvalue = [2, 0, 2, 0]"] ;
0 -> 1 [labeldistance=2.5, labelangle=45, headlabel="True"] ;
2 [label="gini = 0.0\nsamples = 2\nvalue = [0, 0, 2, 0]"] ;
1 -> 2 ;
3 [label="gini = 0.0\nsamples = 2\nvalue = [2, 0, 0, 0]"] ;
1 -> 3 ;
4 [label="X[1] <= 3.0\ngini = 0.5\nsamples = 4\nvalue = [0, 2, 0, 2]"] ;
0 -> 4 [labeldistance=2.5, labelangle=-45, headlabel="False"] ;
5 [label="gini = 0.0\nsamples = 2\nvalue = [0, 0, 0, 2]"] ;
4 -> 5 ;
6 [label="gini = 0.0\nsamples = 2\nvalue = [0, 2, 0, 0]"] ;
4 -> 6 ;
}
Так что все выглядит хорошо и прекрасно, но почему подключены только краяк родительскому узлу, правильно обозначенному логическим значением?Не должны ли все ребра в этом графе иметь правильную логическую метку / атрибут, прикрепленный к нему ??
Или если существует какое-то странное соглашение о графике / точке, которое помогает мне отличить последующие ребра, каково правило?
Я заметил из документации scikit по классификатору дерева решений , что в приведенном в качестве примера дереве решений графического графического интерфейса на самом деле также отсутствуют логические метки.Что касается моего понимания деревьев решений, это оставляет важную информацию о дереве.Опять же есть какие-то соглашения, которые я здесь пропускаю?Например, левый край всегда неявно True?И как я могу узнать это из файла точек, поскольку он организован вертикально?