파이썬 머신러닝 시리즈 5편: 결정 트리
이번 "파이썬 머신러닝 시리즈"의 다섯 번째 편에서는 다양한 분류 및 회귀 문제에 사용되는 알고리즘인 '결정 트리'에 대해 알아보겠습니다.
결정 트리란?
결정 트리는 입력 변수를 이용해 목표 변수의 값을 예측하는 모델입니다. 트리 구조를 사용하여 결정 규칙을 도출하고, 이를 통해 데이터를 분류하거나 예측하는 방식을 취합니다.
결정 트리의 기본 이론
결정 트리는 트리의 노드에서 속성/특성을 확인하고, 그 결과에 따라 데이터를 하위 노드로 분류합니다. 이런 분류 과정을 통해, 노드는 계속해서 분할되며 이 과정을 '분기'라고 부릅니다. 각 분기는 정보 이득이 최대가 되도록 이루어집니다.
결정 트리의 장단점
결정 트리의 주요 장점은 이해와 해석이 쉽다는 점입니다. 그러나 주의하지 않으면 과적합이 발생하기 쉬워 일반화 성능이 떨어질 수 있습니다.
결정 트리의 실제 적용
결정 트리는 의료 진단, 고객 분류, 신용 리스크 평가 등 다양한 분야에서 활용됩니다. 예를 들어, 환자의 증상을 바탕으로 질병을 진단하거나, 고객의 구매 이력과 개인 정보를 바탕으로 마케팅 전략을 결정하는 데 사용할 수 있습니다.
파이썬을 이용한 결정 트리 학습
파이썬에서는 scikit-learn 라이브러리를 이용해 결정 트리 모델을 쉽게 학습하고 예측을 수행할 수 있습니다.
먼저 필요한 라이브러리를 불러옵니다.
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn import metrics
이제 데이터를 불러옵니다. 이번에는 붓꽃 데이터를 이용하겠습니다.
from sklearn.datasets import load_iris
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)
결정 트리 모델을 학습합니다.
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
이제 테스트 데이터에 대해 예측을 수행하고, 모델의 성능을 평가합니다.
y_pred = model.predict(X_test)
print('Accuracy:', metrics.accuracy_score(y_test, y_pred))
여기서 Accuracy는 모델이 올바르게 분류한 샘플의 비율을 나타냅니다. 값이 높을수록 모델의 성능이 좋다고 판단할 수 있습니다.
마치며
이번 시간에는 결정 트리에 대해 알아보았습니다. 결정 트리의 기본 이론부터 실제 적용 방법까지 다양한 내용을 다루어 보았습니다. 다음 시리즈에서는 또 다른 머신러닝 기법인 랜덤 포레스트에 대해 알아보도록 하겠습니다. 기대해주세요!
'데이터 분석 도전기' 카테고리의 다른 글
파이썬 머신러닝 시리즈 8편: 앙상블 학습: 랜덤 포레스트와 그래디언트 부스팅 (0) | 2023.06.27 |
---|---|
파이썬 머신러닝 시리즈 8편 - 군집화(Clustering) (0) | 2023.06.23 |
파이썬 머신러닝 시리즈 7편: 서포트 벡터 머신(SVM) (0) | 2023.06.21 |
파이썬 머신러닝 시리즈 6편: 랜덤 포레스트 (0) | 2023.06.20 |
파이썬 머신러닝 시리즈 4편: 로지스틱 회귀 분석 (0) | 2023.06.19 |
파이썬 머신러닝 시리즈 3편: 선형 회귀 분석 (0) | 2023.06.19 |
파이썬 머신러닝 시리즈 2편: 지도학습과 비지도학습 (0) | 2023.06.19 |
파이썬 머신러닝 시리즈 1편: 머신러닝이란? (0) | 2023.06.19 |