Allen's 데이터 맛집

[머신러닝] 분류 : 의사결정 트리(Decision Tree) 본문

Machine Learning/머신러닝

[머신러닝] 분류 : 의사결정 트리(Decision Tree)

Allen93 2023. 9. 6. 23:03
"데이터의 미로, Decision Tree 분류 모델"



이번에는 데이터 분류에 활용되는 'Decision Tree(의사 결정 트리)' 분류 모델을 알아보겠습니다. 이 모델은 데이터의 규칙을 분석하여 예측을 수행하는 직관적이고 강력한 도구입니다.


Decision Tree 분류 모델은 데이터를 분기점과 결정 영역으로 나누어 가며 예측을 수행합니다. 각 분기점은 특정 특성의 값에 따라 데이터를 서로 다른 클래스로 할당하게 됩니다.

 

의사결정 트리

이미지출처:https://dlsdn73.tistory.com/655


간단한 파이썬 코드 예제:

from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# 데이터 로드
iris = load_iris()
X = iris.data
y = iris.target

# 데이터 분할
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Decision Tree 분류 모델 생성 및 학습
model = DecisionTreeClassifier()
model.fit(X_train, y_train)

# 예측
y_pred = model.predict(X_test)

# 정확도 평가
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)


적용 상황과 장단점



Decision Tree 분류 모델은 데이터의 특성과 클래스 간의 관계를 직관적으로 이해하기 쉽게 나타낼 수 있어, 결과의 해석과 과정의 이해가 용이합니다. 작은 규모의 데이터셋에서도 효과적으로 작동하며, 범주형과 연속형 데이터 모두에 적용할 수 있습니다.

장점으로는 해석력이 뛰어나며, 복잡한 모델보다 간단한 결정 경계를 생성하므로 과적합을 줄이는 효과를 가지기도 합니다. 또한 모델의 최적화를 위한 다양한 파라미터 튜닝이 가능합니다.

하지만 너무 깊은 트리를 생성하면 과적합 문제가 발생할 수 있으며, 이를 방지하기 위해서는 트리의 최대 깊이나 분기 조건을 조절해야 합니다.

Decision Tree 분류 모델은 데이터의 패턴을 직관적으로 이해할 수 있어서, 중요한 결정 근거를 파악하고자 할 때 매우 유용합니다. 데이터의 특성과 목적에 따라서 적절한 트리의 깊이나 파라미터를 설정하여 사용하는 것이 좋습니다.