Python에서 트리 시각화

Marion Paul Kenneth Mendoza 2023년12월11일
  1. Python에서 트리 시각화
  2. Graphviz 패키지 설치
  3. 트리를 도트 파일로 변환
  4. 도트 파일을 이미지로 변환
Python에서 트리 시각화

여러 가지 이유로 결정 트리는 일반적인 감독 학습 기술입니다. 의사 결정 트리의 장점은 분류와 회귀 모두에 사용할 수 있고 기능 확장이 필요하지 않으며 의사 결정 트리를 읽기 쉽다는 것입니다.

이 기사에서는 의사 결정 트리를 표시하는 Python의 Graphviz를 시연했습니다.

Python에서 트리 시각화

‘Graphviz’ 또는 그래프 시각화는 구조 정보를 추상 그래프 및 네트워크의 다이어그램으로 나타내는 오픈 소스 소프트웨어입니다. 예를 들어, 데이터 과학에서 ‘Graphviz’의 용도 중 하나는 의사 결정 트리를 시각화하는 것입니다.

Graphviz 패키지 설치

운영 체제 및 기타 여러 요인에 따라 도트 파일을 이미지 파일(PNG, JPG, SVG 등)로 변환하려면 종종 Graphviz를 설치해야 합니다.

dot: command not found 오류가 표시되면 dot 언어도 설치하지 않았을 수 있습니다.

Graphviz를 설치하려면 다음을 실행하십시오.

  1. 윈도우:

    winget install graphviz
    
  2. 맥:

    brew install graphviz
    
  3. 우분투:

    sudo apt install graphviz
    

실행 파일 및 기타 버전의 수동 다운로드와 같은 추가 설치 절차는 공식 Graphviz 문서로 이동할 수 있습니다.

설치가 완료되면 Graphviz 설치의 설치 디렉토리에 dot.exe 파일이 있는지 확인하십시오. 나중에 dot 파일의 시각화를 생성하는 데 필요하기 때문입니다. 일반적으로 기본 설치 경로는 C:\Program Files\Graphviz\bin입니다.

트리를 도트 파일로 변환

Graphviz의 요구 사항 중 하나는 dot 형식의 트리이지만 먼저 샘플 트리가 필요합니다. Python에서 나무가 어떻게 작동하는지에 대한 이 기사로 이동하거나 이 기사를 편리하게 살펴보기 위해 아래 명령을 사용할 수 있습니다.

예제 코드:

tree = "digraph G {Hello->World}"

open("sample.dot", "w").write(tree)

위의 코드 스니펫은 간단한 Hello->World 2노드 트리 구조를 sample.dot 파일에 작성하여 요구 사항을 충족했습니다. 그러나 보다 복잡한 트리를 원할 경우 형식으로 직접 다운로드할 수 있는 이 온라인 트리 메이커를 사용할 수 있습니다.

도트 파일을 이미지로 변환

이제 dot 파일이 있으므로 dot 응용 프로그램을 사용하여 Graphviz 내에서 실행해야 합니다. 앞서 이 섹션에서 필요하므로 Graphviz dot.exe 경로를 기록해 두도록 요청했습니다.

명령 프롬프트에서 cd 명령을 사용하여 dot.exe 경로로 이동합니다.

cd C:\Program Files\Graphviz\bin

대부분의 경우 Graphviz 설치는 환경 변수에 dot를 포함하지 않기 때문에 dot.exe를 사용하여 다음 코드 스니펫을 실행할 수 있습니다.

# dot.exe -Tpng <path of the dot file> -o <destination path of the png file>
dot.exe -Tpng C:\PS\sample.dot -o C:\PS\sample.png

일단 실행되면 PNG 형식으로 트리의 시각적 표현을 사용할 수 있습니다.

Sample.dot 파일의 샘플 트리

dot 매개변수에 대한 전체 정보는 dot 명령 공식 문서에서 확인할 수 있습니다.

Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

관련 문장 - Python Tree