안녕하세요~ 꽁냥이에요. Graphviz는 구조화된 데이터(트리, 네트워크 등)를 시각화해주는 라이브러리입니다.
Graphviz의 결과는 dot graph라는 형식으로 저장되는데요. 이번 포스팅에서는 dot graph를 이미지로 저장하는 방법을 알아보겠습니다. 굉장히 쉽습니다.
Dot Graph 이미지로 저장하기 : render
먼저 시각화할 재료를 만들어야합니다. 꽁냥이는 의사결정 나무를 학습하고 최종 결과 트리를 dot graph로 저장했습니다.
import pandas as pd
import graphviz
import warnings
warnings.filterwarnings('ignore')
from sklearn.datasets import load_boston
from sklearn.tree import DecisionTreeRegressor, export_graphviz
boston = load_boston()
df = pd.DataFrame(boston.data, columns=boston.feature_names)
df['MEDV'] = boston.target
X = df.drop('MEDV', axis=1)
y = df['MEDV']
reg = DecisionTreeRegressor(max_depth=3).fit(X, y)
## dot graph 생성
dot_data = export_graphviz(reg, out_file=None,
feature_names=X.columns,
filled=False, rounded=True,
special_characters=False)
graph = graphviz.Source(dot_data)
Dot Graph를 이미지로 저장하기 위해서는 render 함수를 사용하면 됩니다. filename 인자에 파일 이름, directory는 저장할 디렉터리 그리고 format 인자에는 이미지 파일 형식을 지정해주면 됩니다.
## 이미지 저장
graph.render(filename='test_img', directory='./', format='png')
위 코드를 실행하면 아래와 같이 설정해준 디렉터리에 test_img.png가 생성된 것을 알 수 있습니다.
파일을 열어보면 의사결정나무가 잘 저장되어 있는 것을 알 수 있습니다.
댓글