Перейти к содержимому

Как установить graphviz в анаконда

  • автор:

Как установить graphviz в анаконда

Шаг 50.
Введение в машинное обучение с использованием Python. . . Алгоритмы машинного обучения с учителем. Деревья решений. Анализ деревьев решений

На этом шаге мы рассмотрим различные способы визуализации деревьев .

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

[In 5]: from sklearn.tree import export_graphviz export_graphviz(tree, out_file="tree.dot", class_names=["nalignant", "benign"], feature_names=cancer.feature_names, impurity=False, filled=True)
[In 6]: import graphviz with open("tree.dot") as f: dot_graph = f.read() graphviz.Source(dot_graph)

Мы можем прочитать этот файл и визуализировать его, как показано на рисунке 1 используя модуль graphviz (или любую другую программу, которая может читать файлы с расширением .dot ).

Рис.1. Визуализация дерева решений, построенного на наборе данных Breast Cancer (изображение кликабельно)

Если вы используете Anaconda под Windows , то необходимо установить conda -пакет graphviz и pip -пакет graphviz :

conda install -c anaconda graphviz=2.38.0 pip install graphviz

Затем в переменной окружения PATH необходимо прописать полный путь к установленной папке graphviz . В Windows 7 для этого нажмите кнопку Пуск , выберите Панель управления . Дважды нажмите на Система , затем выберите Дополнительные параметры системы . Во вкладке Дополнительно нажмите на Переменные среды . Выберите Path и нажмите на Изменить . В поле Значение переменной введите путь к папке graphviz ,например:

C:\Anaconda3\Library\bin\graphviz .

Как вариант, можно построить диаграмму дерева и записать ее в файл .pdf . Дополнительно нам потребуется модуль pydotplus .

[In 7]: import numpy as np import matplotlib.pyplot as plt import pandas as pd import mglearn %matplotlib inline from sklearn.model_selection import train_test_split from sklearn.datasets import load_breast_cancer from sklearn import tree from sklearn.tree import export_graphviz cancer = load_breast_cancer() X_train, X_test, y_train, y_test = train_test_split( cancer.data, cancer.target, stratify=cancer.target, random_state=42) clf = tree.DecisionTreeClassifier(max_depth=4, random_state=0) clf = clf.fit(X_train, y_train) import pydotplus dot_data = tree.export_graphviz(clf, out_file=None) graph = pydotplus.graph_from_dot_data(dot_data) graph.write_pdf("cancer.pdf")

Созданный файл можно взять здесь.

Можно построить визуализацию дерева с помощью функции Image интерактивной оболочки IPython :

[In 8]: from IPython.display import Image dot_data = tree.export_graphviz(clf, out_file=None, feature_names=cancer.feature_names, class_names=cancer.target_names, filled=True, rounded=True, special_characters=True) graph = pydotplus.graph_from_dot_data(dot_data) Image(graph.create_png())

Рис.2. Визуализация дерева с помощью функции Image (изображение кликабельно)

Визуализация дерева дает более глубокое представление о том, как алгоритм делает прогнозы и является хорошим примером алгоритма машинного обучения, который легко объяснить неспециалистам. Однако, как показано здесь, даже при глубине 4 дерево может стать немного громоздким. Деревья с большим значением глубины (деревья глубиной 10 — не редкость) еще труднее понять. Один из полезных способов исследования дерева заключается в том, чтобы выяснить, какие узлы содержат наибольшее количество данных. Параметр samples , выводимый в каждом узле на рисунке 1, показывает общее количество примеров в узле, тогда как параметр value показывает количество примеров в каждом классе. Проследовав по правой ветви, отходящей от корневого узла, мы видим, что правилу worst radius>16.795 соответствует узел, который содержит 134 случая злокачественной опухоли и лишь 8 случаев доброкачественной опухоли. Далее дерево выполняет серию более точных разбиений оставшихся 142 случаев. Из 142 случаев, которые при первоначальном разбиении были записаны в правый узел, почти все (132) в конечном итоге попали в правый лист (для удобства выделен красной рамкой).

На следующем шаге мы рассмотрим важность признаков в деревьях .

Как установить graphviz в анаконда

Скачай курс
в приложении

Перейти в приложение
Открыть мобильную версию сайта

© 2013 — 2023. Stepik

Наши условия использования и конфиденциальности

Get it on Google Play

Public user contributions licensed under cc-wiki license with attribution required

Как установить graphviz в анаконда

Open Source graph visualization software.

  • License: EPL-1.0
  • Home: https://www.graphviz.org/
  • Development: https://gitlab.com/graphviz/graphviz/
  • Documentation: https://graphviz.gitlab.io/documentation/
  • 305657 total downloads
  • Last upload: 9 months and 26 days ago

Installers

conda install

To install this package run one of the following:
conda install anaconda::graphviz

Description

Graphviz is an open source graph visualization software. Graph visualization is a way of representing structural information as diagrams of abstract graphs and networks.

By data scientists, for data scientists

Ошибка: «‘GraphViz\’s executables not found'»

На ноуте (MacOS) уже установлена Anaconda, я так понимаю, что проблема в том, что не установлен GraphViz . Когда набираю в терминале:

conda install -c anaconda graphviz=2.38.0 

Получаю ошибку:

invalid package specification: graphviz=2.38.

Как решить эту проблему?

import numpy as np from sklearn.datasets import load_iris from sklearn import tree iris = load_iris() test_idx =[0, 50, 100] #training data train_target =np.delete(iris.target, test_idx) train_data =np.delete(iris.data, test_idx, axis=0) #testing data test_target = iris.target[test_idx] test_data = iris.data[test_idx] clf = tree.DecisionTreeClassifier() clf.fit(train_data, train_target) print test_target print clf.predict(test_data) #viz code from sklearn.externals.six import StringIO import pydot dot_data = StringIO() tree.export_graphviz(clf,out_file=dot_data,feature_names=iris.feature_names, class_names=iris.target_names,filled=True, rounded=True, impurity=False) graph =pydot.graph_from_dot_data(dot_data.getvalue()) graph.write_pdf("iris.pdf") 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *