Дерево решений - это популярный алгоритм машинного обучения с учителем для задач классификации и регрессии. Он считается строительным блоком для моделей Random Forest и Gradient Boosting. Модели дерева решений легко интерпретируемы и являются популярным инструментом анализа решений.

Модель дерева решений в основном представляет собой комбинацию набора правил, которые используются для прогнозирования метки целевого класса. Модель дерева решений может быть интерпретирована путем визуализации решений дерева. Существуют различные методы визуализации модели дерева решений:

  • Распечатайте текстовое представление дерева с помощью функции scikit-learn export_tree: sklearn.tree.export_text
  • Визуализируйте дерево решений с помощью matplotlib, используя функцию scikit-learn plot_tree: sklearn.tree.plot_tree
  • Визуализируйте дерево решений с помощью Graphviz, используя функцию scikit-learn export_graphviz: sklearn.tree.export_graphviz
  • Наконец, самый эффективный метод визуализации деревьев с помощью библиотеки dtreeviz.

Реализация Scikit-learn для визуализации дерева решений неэффективна и не интерактивна. Вы можете визуализировать дерево решений для набора данных Iris с помощью библиотеки scikit-learn.

Можно обратиться к статье Майкла Галарника, чтобы получить практическую реализацию визуализации дерева решений с помощью пакета scikit-learn.

В этой статье мы обсудим, как создать более эффективную и лучше отформатированную визуализацию дерева решений с помощью библиотеки dtreeviz.

dtreeviz:

dtreeviz - это библиотека Python с открытым исходным кодом, используемая для визуализации решений или правил модели дерева решений. Установите библиотеку из PyPl с помощью pip install dtreeviz и импортируйте ее как from dtreeviz.trees import *. Библиотека dtreeviz может визуализировать дерево решений как для задач классификации, так и для задач регрессии.

Задачи классификации:

Приведенный ниже фрагмент кода можно использовать для создания экземпляра функции dtreeviz и построения визуализации для модели классификатора дерева решений, обученной на наборе данных Iris.

viz = dtreeviz(clf, 
x_data=X_train, 
y_data=y_train,
target_name='class',
feature_names=iris.feature_names,
class_names=list(iris.target_names),
title="Decision Tree - Iris Data")

Дерево решений, созданное с помощью библиотеки dtreeviz, лучше форматируется и интерпретируется. Для каждого узла приведенного выше графика у нас есть сложенная гистограмма функции с разбиением на этом уровне, имеющая цветовую кодировку в соответствии с классом. Порог разделения можно увидеть по гистограмме. Например, для первого узла разделение происходит в petal_length=2.45, где записи, имеющие petal_length<=2.45, предсказываются как сетоса, а petal_length>2.45 мы расширили дерево.

Задачи регрессии:

dtreeviz также может визуализировать регрессорную модель дерева решений. Приведенный ниже фрагмент кода можно использовать для визуализации регрессора дерева решений, обученного на наборе данных Boston Housing.

viz = dtreeviz(reg,
x_data=X_train,
y_data=y_train,
target_name='price',
feature_names=boston.feature_names,
title="Decision Tree - Boston housing",
show_node_labels = True)

Для графиков дерева решений регрессии на каждом узле у нас есть диаграмма рассеяния между целевым классом и функцией, которая используется для разделения на этом уровне. Модель можно интерпретировать, наблюдая за пунктирной линией на диаграммах рассеяния.

  • Вертикальные линии на диаграмме рассеяния обозначают точку разделения на этом уровне (то же самое, что и гистограмма, отделенная от классификации).
  • Горизонтальная пунктирная линия на диаграмме рассеяния - целевые средние значения для левого и правого узлов принятия решения.

Некоторые интересные особенности dtreeviz:

  • Ориентация: по умолчанию графики дерева решений располагаются сверху вниз, можно изменить ориентацию слева направо с помощью параметра orientation=’LR’ функции dtreeviz.
  • Удаление диаграмм рассеяния или гистограмм: для модели деревьев решений с большой глубиной наличие диаграмм рассеяния или гистограмм может сделать график очень большим. Этого можно избежать на их графиках, используя параметр fancy=False из функции dtreeviz.
  • Важность функции: чтобы получить график важности функции, можно использовать параметр explanation_type=’sklearn_default’.

В библиотеке dtreeviz есть и другие возможности, чтобы узнать о них подробнее, прочтите эту статью на сайте объяснено.ai.

Вывод:

В этой статье обсуждалось, как dtreeviz можно использовать для построения моделей классификации дерева решений и регрессии. Специалисты по обработке данных / аналитики могут использовать его для понимания своих моделей дерева решений, соблюдая набор правил, которые вызывают прогноз.

Существуют определенные ограничения, например, интерпретировать дерево решений с большой глубиной очень сложно. Кроме того, дерево решений генерирует только графики SVG с уменьшенными зависимостями.

Использованная литература:

[1] Репозиторий Dtreeviz на GitHub: https://github.com/parrt/dtreeviz

Спасибо за чтение