Дерево решений - это популярный алгоритм машинного обучения с учителем для задач классификации и регрессии. Он считается строительным блоком для моделей 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
Спасибо за чтение