dtreeviz заменяет график, регрессия слишком много точек

#python #matplotlib #decision-tree #dtreeviz

#python #matplotlib #дерево решений #dtreeviz

Вопрос:

Как я могу заменить графики узлов из dtreeviz пользовательской функцией plot от меня?

В качестве альтернативы: я хочу заменить dtreeviz-графики 2d-гистограммой: ось y = значения y, ось x: значения из функции разделения, сетка над графиком, каждая ячейка сетки получает количество выборок внутри в виде цвета. (Если это уже реализовано в каком-то пакете, также было бы здорово) В matplotlib вызывается функция построения графика для этого hist2d()


Я использую sklearn для изучения дерева решений регрессии и визуализации результатов с помощью dtreeviz.

MWE: (см https://github.com/parrt/dtreeviz#regression-decision-tree )

 from sklearn.datasets import *
from sklearn import tree
from dtreeviz.trees import *

regr = tree.DecisionTreeRegressor(max_depth=2)
boston = load_boston()
regr.fit(boston.data, boston.target)

viz = dtreeviz(regr,
               boston.data,
               boston.target,
               target_name='price',
               feature_names=boston.feature_names)
              
viz.view()       
  

введите описание изображения здесь

Теперь у меня есть миллионы образцов в моей проблеме, и результат .svg отображается крайне медленно (читается «невозможно»). Я мог использовать эту визуализацию только с использованием понижающей дискретизации.

Пример 2d гистограммы:

https://matplotlib.org/gallery/scales/power_norm.html#sphx-glr-gallery-scales-power-norm-py

(Из https://matplotlib.org/gallery/scales/power_norm.html#sphx-glr-gallery-scales-power-norm-py )

Ответ №1:

Извините, но вам придется изменить программное обеспечение, поскольку оно не было разработано для использования фигур узлов plug-and-play. Было чрезвычайно сложно убедить все инструменты в цепочке работать вместе, даже не допуская такой гибкости.

Комментарии:

1. Не беспокойтесь, я уже очень доволен тем, что работает — я боялся, что это будет сложно. Отличная работа!

2. Спасибо! рад быть полезным.