Исключение в обратном вызове Tkinter с использованием SHAP - PullRequest
2 голосов
/ 29 мая 2020

Я пытаюсь нарисовать несколько графиков SHAP в Python, чтобы лучше понять результаты моих моделей машинного обучения. Это метод, который я вызываю в for l oop:

def plotAndSaveSHAPSummary(model,train_data,x_train,pathToSHAPPlots):
    shap_values = model.get_feature_importance(train_data, type='ShapValues')
    expected_value = shap_values[0,-1]
    shap_values = shap_values[:,:-1]

    shap.summary_plot(shap_values,x_train,max_display=20,show=False)
    plt.savefig(pathToSHAPPlots+'/SHAP Plots/SHAP_Plot'+str(counter)+'.png',dpi=300,bbox_inches='tight')
    plt.clf()

Графики сохраняются на диск, как и ожидалось, но после каждого вызова метода savefig я получаю следующее сообщение об ошибке:

Exception in Tkinter callback
Traceback (most recent call last):
  File "D:\PathTo\Anaconda\Lib\tkinter\__init__.py", line 1705, in __call__
    return self.func(*args)
  File "D:\PathTo\Anaconda\Lib\tkinter\__init__.py", line 749, in callit
    func(*args)
  File "D:\PathTo\Anaconda\lib\site-packages\matplotlib\backends\_backend_tk.py", line 270, in idle_draw
    self.draw()
  File "D:\PathTo\Anaconda\lib\site-packages\matplotlib\backends\backend_tkagg.py", line 9, in draw
    super(FigureCanvasTkAgg, self).draw()
  File "D:\PathTo\Anaconda\lib\site-packages\matplotlib\backends\backend_agg.py", line 393, in draw
    self.figure.draw(self.renderer)
  File "D:\PathTo\Anaconda\lib\site-packages\matplotlib\backend_bases.py", line 1535, in _draw
    def _draw(renderer): raise Done(renderer)
matplotlib.backend_bases._get_renderer.<locals>.Done: <matplotlib.backends.backend_agg.RendererAgg object at 0x000002066B288288>

Есть идеи, как избавиться от этого исключения?

...