[python] scikit-learn을 이용한 결정 트리 시각화

scikit-learn은 파이썬에서 머신러닝 알고리즘을 쉽게 사용할 수 있는 라이브러리입니다. 중요한 머신러닝 알고리즘 중 하나인 결정 트리를 시각화하는 방법에 대해 알아보겠습니다.

결정 트리란?

결정 트리는 트리 구조를 사용하여 여러 개의 결정 기준에 따라 데이터를 분류하는 알고리즘입니다. 이러한 결정 트리는 IF-THEN 형태의 규칙을 통해 데이터를 분류하며, 각 결정 기준은 해당 기준이 가장 높은 정보 이득을 얻을 수 있는지를 기준으로 선택됩니다.

scikit-learn을 이용한 결정 트리 시각화 방법

scikit-learn에서는 결정 트리 모델을 구축하고 시각화하기 위해 graphviz 라이브러리를 사용할 수 있습니다. graphviz는 그래프 시각화 도구이며, scikit-learn의 export_graphviz 함수를 사용하여 결정 트리 모델을 그래프 형태로 변환할 수 있습니다.

아래는 scikit-learn에서 제공되는 예제 데이터셋인 iris 데이터셋을 사용하여 결정 트리 모델을 생성하고 시각화하는 코드입니다.

from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
from sklearn.tree import export_graphviz
import graphviz

# 데이터셋 불러오기
iris = load_iris()

# 결정 트리 모델 생성
dt = DecisionTreeClassifier()
dt.fit(iris.data, iris.target)

# 결정 트리 시각화
dot_data = export_graphviz(dt, out_file=None,
                           feature_names=iris.feature_names,
                           class_names=iris.target_names,
                           filled=True, rounded=True,
                           special_characters=True)
graph = graphviz.Source(dot_data)
graph.render("decision_tree")
graph.view()

위 코드에서 load_iris 함수를 통해 iris 데이터셋을 불러와서 DecisionTreeClassifier를 사용하여 결정 트리 모델을 생성합니다. 그리고 export_graphviz 함수를 사용하여 생성한 결정 트리 모델을 그래프로 변환하고, graphvizSource 함수를 통해 시각화한 그래프를 생성합니다. 마지막으로 render 함수를 사용하여 그래프를 이미지 파일로 저장하고, view 함수를 사용하여 시각화된 그래프를 브라우저에서 확인할 수 있습니다.

결과로 생성된 결정 트리 시각화 그래프는 데이터의 특징과 분류 결과를 한눈에 알아볼 수 있습니다.

결론

scikit-learn을 이용하여 결정 트리 모델을 생성하고 시각화하는 방법에 대해 알아보았습니다. 결정 트리를 시각화함으로써 모델의 작동 원리를 이해하고 데이터의 분류 결과를 직관적으로 확인할 수 있습니다. 머신러닝 알고리즘을 공부하고 응용할 때, 시각화는 중요한 도구로 활용될 수 있습니다.