Как заставить деревья решений использовать только целые числа при оценке - PullRequest
1 голос
/ 08 ноября 2019

Я делаю дерево решений, и я хотел бы заставить алгоритм оценивать условия только в целых числах. Функции, которые я использую, являются дискретными и целыми, поэтому не имеет смысла, что дерево показывает "X <= 42.5" </strong>, поэтому в этом примере я хочу, чтобы дерево отображалось вполе один из эквивалентов среди "X <43" </strong> или "X <= 42" </strong>.

Мне нужно это, чтобы сделать дерево более понятным для нетехнических людей. Не имеет смысла показывать «меньше 15,5 песен» , оно должно быть меньше 43 или меньше или равно 42 .

Я попытался изменить типы столбцов исходных таблиц, и все они имеют тип int64, и проблема сохраняется.

Код I 'м:

clf = tree.DecisionTreeClassifier(criterion='gini',
                                  max_depth=2,
                                  splitter='best')

clf = clf.fit(users_data, users_target)

Пока что я не нашел никаких параметров или чего-либо подобного в документации.

Спасибо!

1 Ответ

0 голосов
/ 08 ноября 2019

Прежде всего, я бы не стал сам настраивать правила дерева, я бы настроил сюжет.

Существует дополнительный пакет для построения дерева от sklearn. С помощью этой настройки:

precision : int, optional (default=3)

    Number of digits of precision for floating point in the values of impurity, threshold and value attributes of each node.

Вы можете изменить ее, например:

tree.plot_tree(clf, precision=0)

Должны дать вам округленные числа.

...