클라우드(AWS)/AIF-C01

[AWS] Decision Tree란? (의사 결정 트리) 쉽게 정리

찌르비 2025. 3. 9. 18:00
반응형

Decision Tree (의사 결정 트리)

Decision Tree는 알고리즘이다.

분류(Classification) 및 회귀(Regression) 문제를 해결하는 머신러닝(ML)에서 자주 사용된다.

 

데이터의 특징을 기반으로 트리 구조를 만들어 결정 규칙을 생성하고, 새로운 데이터가 주어졌을 때 적절한 클래스로 분류하거나 값을 예측하는 데 사용된다.

 

 💪 Decision Tree 예시:

날씨에 따라서 야외 운동을 할지 안할지를 정하는 Decision Tree이다.

날씨에 따른 야외 운동 여부를 결정하는 Decision Tree

🎯 클래스 (Class)

  • Play → 운동 가능 ✅
  • Not Play → 운동 불가능 ❌

🔹 속성 (Attribute)

  • outlook (날씨) → sunny, overcast, rain
  • humidity (습도) → high, normal
  • windy (바람 여부) → true, false

🤔 문제

회사는 유전자 특성을 기반으로 인간 유전자를 20개의 범주로 분류하려고 합니다. 또한, 모델의 내부 메커니즘이 출력에 어떤 영향을 미치는지를 문서화할 수 있는 ML 알고리즘이 필요합니다.
이 요구사항을 충족하는 ML 알고리즘은 무엇입니까?

 

  1. 의사 결정 트리 (Decision trees)
  2. 선형 회귀 (Linear regression)
  3. 로지스틱 회귀 (Logistic regression)
  4. 뉴럴 네트워크 (Neural networks)

정답

더보기

정답 1번

 

 

 


🐍 python 코드로 테스트

라이브러리 불러오기

from sklearn import datasets 
import numpy as np # 수치 연산을 위한 라이브러리
from sklearn import tree # Decision Tree를 위한 라이브러리

 

 Iris 데이터셋 로드

iris = datasets.load_iris() #Iris 꽃 데이터셋을 불러오기

Iris 데이터셋은 꽃잎(petal)과 꽃받침(sepal)의 길이/너비를 기반으로 세 가지 품종(Iris Setosa, Versicolor, Virginica)을 분류하는 문제이다

 

Decision Tree 모델 생성

clf = tree.DecisionTreeClassifier(max_depth=3, criterion='entropy')

 

모델 학습 (Training)

clf.fit(iris.data, iris.target)

 

예측 정확도 확인

predicted = clf.predict(iris.data) 
sum(predicted == iris.target) / len(iris.target)

 

가시화(visualization)하기

import matplotlib.pyplot as plt
plt.figure(figsize = (20,20))
tree.plot_tree(
    clf,
    proportion=True,
    feature_names = iris.feature_names,
    filled=True,
    rotate=True,
    )
plt.savefig('Tree.pdf')

반응형