Jupyter에서 dtreeviz를 실행하면 디스플레이가 이상해졌을 때의 해결책

Jupyter에서 dtreeviz (결정 트리의 결과를 시각화하는 라이브러리)를 실행하면 표시가 이상해졌을 때의 해결 예를 소개합니다.

이런 사건입니다.



예를 들어, 타이타닉 데이터를 분석하고, 결정 트리의 결과를 dtreeviz를 사용하여 Jupyter에서 시각화하려고합니다.


import pandas as pd

df = pd.read_csv('train.csv')  # Kaggleでダウンロード
label = df["Survived"].tolist()
feature = pd.get_dummies(df[df.columns[df.columns != 'Survived']])
feature = feature.fillna(0)

from sklearn import tree

clf = tree.DecisionTreeClassifier(max_depth=3)
clf = clf.fit(feature, label)

from dtreeviz.trees import dtreeviz  # pipでインストールする必要あり
import numpy as np

viz = dtreeviz(clf, feature, np.array(label), target_name='status', feature_names=list(feature.columns), class_names=["Dead", "Survived"]) 

display(viz)  # 可視化用


이 스크립트를 실행하면 다음과 같습니다.









이 방법으로 표시가 이상해질 수 있습니다.

해결 방법



여러가지 시험해 보았습니다만, 제일 심플하고 편한 것은, 이하의 해결책이었습니다.
import pandas as pd

df = pd.read_csv('train.csv')  # Kaggleでダウンロード
label = df["Survived"].tolist()
feature = pd.get_dummies(df[df.columns[df.columns != 'Survived']])
feature = feature.fillna(0)

from sklearn import tree

clf = tree.DecisionTreeClassifier(max_depth=3)
clf = clf.fit(feature, label)

from dtreeviz.trees import dtreeviz  # pipでインストールする必要あり
import numpy as np

viz = dtreeviz(clf, feature, np.array(label), target_name='status', feature_names=list(feature.columns), class_names=["Dead", "Survived"]) 

viz.view()  # 修正:SVGで出力


이 수정을 수행하면 다른 탭에서 SVG 파일이 출력됩니다.



notebook상에 그림은 남길 수 없습니다만, 개인적으로는, 이 해결책으로 특별히 문제 없었기 때문에 채용했습니다.

마지막으로



나 자신, 사소한 일로, 넘어지는 케이스는 상당히 많기 때문에, 이번 건도 정보 공유했습니다.
dtreeviz를 이용할 때의 참고로 해 주실 수 있으면 기쁩니다.

참고



dtreeviz 실행 오류 및 그 대책

좋은 웹페이지 즐겨찾기