Allen's 데이터 맛집
[머신러닝] 회귀 : 의사 결정 트리(Decision Tree) 모델 본문
"데이터의 숨은 규칙, Decision Tree 모델"
데이터 분석과 머신러닝을 통해 현실을 해석하고 예측하는 데 도움이 되는 다양한 알고리즘 중 하나인 'Decision Tree(의사 결정 트리)' 모델을 소개하려 합니다. 이 모델은 마치 의사 결정을 내리는 과정과 유사하게 데이터의 규칙을 분석하여 판단하는 간단하면서도 강력한 도구입니다.
이미지 출처 : https://algodaily.com/lessons/decision-trees-basics
Decision Tree는 데이터의 특성과 결과 사이에 내재된 패턴을 찾아내기 위해 사용됩니다. 이 모델은 나무 구조와 비슷한 형태로, 데이터를 여러 개의 '분기점'과 '리프(Leaf)'로 나누어 각각의 분기점에서 최적의 결정을 내리게 됩니다. 이는 마치 미로를 탐색하며 최적의 경로를 찾는 것과 비슷한 원리입니다.
파이썬 코드 예제:
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 모델은 직관적이며 해석하기 쉬워, 중요한 결정 근거를 이해하기 용이합니다. 작은 규모의 데이터셋에서도 효과적으로 작동하며, 범주형과 연속형 데이터 모두에 적용할 수 있습니다. 또한 Feature의 스케일링이나 정규화가 필요하지 않다는 점이 장점입니다.
하지만 너무 깊은 트리 구조를 갖는다면 과적합(Overfitting) 문제가 발생할 수 있습니다. 이를 방지하기 위해서는 트리의 최대 깊이나 분기 조건을 조절해야 합니다. 또한 데이터의 작은 변화에도 결과가 크게 변할 수 있는 민감성을 가질 수 있다는 점 역시 주의해야 합니다.
Decision Tree 모델은 데이터 분석과 예측에 있어 강력한 도구로 활용될 수 있으며, 장단점을 잘 고려하여 적절한 상황에서 사용하면 좋은 결과를 얻을 수 있습니다.