위클리페이퍼(3) 결정트리, 부스팅, 차원축소란?

윤승호·2025년 4월 4일

◆ Q & A 요약

Q1. 결정 트리의 장점과 단점은 무엇인가요?
A1. 결정 트리는 직관적이고 해석이 쉬우며 시각화가 용이하다는 장점이 있다. 하지만 과적합에 민감하고, 작은 데이터 변화에도 트리 구조가 크게 달라질 수 있다는 단점이 있다. 따라서 단독보다는 앙상블 기법과 함께 사용하는 경우가 많다.

Q2. 부스팅은 어떤 특징을 가진 앙상블 기법인가요?
A2. 부스팅은 이전 모델의 오류를 보완하면서 약한 학습기를 순차적으로 결합해 성능을 향상시키는 기법이다. 대표적인 부스팅 모델로는 AdaBoost, Gradient Boosting, XGBoost, LightGBM, CatBoost 등이 있으며, 일반적으로 정확도가 높지만 계산 비용이 크다. 특히 LightGBM은 속도가 빠르고 메모리 효율이 높으며, CatBoost는 범주형 변수 처리에 강점을 가진다.

Q3. 차원 축소 기법인 주성분 분석과 요인 분석의 차이는 무엇인지 설명해 주세요.
A3. 주성분 분석(PCA)은 변수 간 분산을 최대화하는 방향으로 데이터를 축소하며, 주로 데이터 압축과 시각화에 사용된다. 반면 요인 분석(FA)은 관측된 변수들 간의 상관관계를 설명하는 잠재 요인을 추정하는 데 중점을 둔다. 즉, PCA는 설명력 중심, FA는 해석력 중심의 차원 축소 기법이다.

1. 결정 트리(Decision Tree)의 장점과 단점은 무엇인가요?

(1) 결정 트리란?

결정 트리는 데이터를 조건에 따라 분할하며 분류/회귀를 수행하는 트리 기반 모델이다. 각 노드는 하나의 조건, 각 리프 노드는 최종 예측 결과를 의미한다.

(2) 장점

항목설명
직관적트리 형태로 분기 → 사람이 보기 쉽고 이해 가능
스케일링 불필요StandardScaler, MinMaxScaler 없이 사용 가능
범주형 처리 가능인코딩 없이 범주형 변수 처리 가능 (일부 구현체)
비선형 관계 처리 가능분기 구조이기 때문에 복잡한 경계도 학습 가능
빠른 학습 속도단일 모델 학습 속도가 빠름
시각화 가능plot_tree() 등으로 구조 확인 가능

(3) 단점

항목설명
과적합(overfitting)트리 깊이를 제한하지 않으면 train 성능은 높지만 test 성능은 떨어짐
작은 변화에 민감데이터 조금만 바뀌어도 트리 구조 크게 달라짐
불안정성결정 기준이 다양해서 동일 데이터라도 구조가 달라질 수 있음
예측 성능 제한적단일 결정 트리는 앙상블보다 성능이 낮음

(4) 코드 예시

from sklearn.tree import DecisionTreeClassifier, plot_tree

model = DecisionTreeClassifier(
	max_depth=4, 
    random_state=42
).fit(X_train, y_train)

import matplotlib.pyplot as plt
plt.figure(figsize=(12, 6))
plot_tree(model, feature_names=X.columns, class_names=['no', 'yes'], filled=True)
plt.show()

2. 부스팅은 어떤 특징을 가진 앙상블 기법인가요?

(1) 정의

부스팅(Boosting)이란 여러 개의 약한 학습기(weak learner)를 순차적으로 학습시켜, 이전 모델의 오차를 보완하는 방식으로 성능을 점점 개선하는 순차적 앙상블 기법이다.

약한 모델들이 차례로 학습하며, 오답에 더 집중하게 만드는 것이 핵심!

(2) 대표 부스팅 모델

모델특징장점단점
AdaBoost오분류 샘플에 가중치 부여단순한 트리를 반복간단하고 해석력 좋음과적합 방지이상치에 민감, 병렬화 어려움
Gradient Boosting오차(잔차)를 줄이는 방향으로 순차 학습튜닝 시 성능 매우 우수느림, 과적합 가능성
XGBoostGBDT 기반 + 정규화 + 결측치 처리빠르고 강력L1/L2 정규화 가능구조 복잡초보자 진입장벽
LightGBM리프 중심 성장대용량, 고차원에 최적빠르고 효율적대규모 데이터에 최적과적합 주의이해 어려움
CatBoost범주형 자동 처리파라미터 튜닝 적음범주형에 강함Overfitting 적음학습 느릴 수 있음

(3) 코드 예시(AdaBoost)

from sklearn.ensemble import AdaBoostClassifier
from sklearn.tree import DecisionTreeClassifier


base_model = DecisionTreeClassifier(max_depth=1)

ada = AdaBoostClassifier(
base_estimator=base_model, 
n_estimators=100, 
learning_rate=0.5, 
random_state=42
).fit(X_train, y_train)

y_pred = ada.predict(X_test)

(4) 코드 예시(XGBoost)

from xgboost import XGBClassifier

xgb = XGBClassifier(
	n_estimators=100, 
	learning_rate=0.1, 
	max_depth=3, 
	random_state=42
).fit(X_train, y_train)

y_pred = xgb.predict(X_test)

3. 주성분 분석(PCA)과 요인 분석(FA)의 차이는 무엇인가요?

(1) 주성분 분석

PCA: Principal Component Analysis

항목설명
목적고차원 데이터를 저차원으로 압축 (차원 축소)
핵심최대 분산을 가지는 축으로 데이터 재표현
출력직교 성분 (주성분), 분산 순서대로 나열
사용처시각화, 고차원 제거, 다중공선성 제거
전제조건특성 간 상관관계 존재 필요
기법선형변환 (SVD 또는 고유값분해)
노이즈포함됨 (전체 분산을 기준으로 하기 때문)

(2) 요인 분석

FA: Factor Analysis

항목설명
목적잠재 요인(latent factor) 추출
핵심공통 요인과 고유 요인으로 분산 분해
출력변수 간 공통된 구조 (latent variable)
사용처심리학, 마케팅, 설문 데이터 분석
전제조건변수 간 높은 상관성 & 요인 존재 가정
기법공분산 행렬 분석, 최대우도법
노이즈제거함 (공통성과 고유오차 분리함)

(3) 비교

구분PCA요인분석 (FA)
목적차원 축소잠재 요인 추정
노이즈 처리포함제거
결과 해석통계적 축의미 있는 요인
적용 분야기계학습 전처리심리학, 사회과학
수학적 방식고유값 분해공통성 기반 요인 모델

(4) PCA 코드 예시

from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
import matplotlib.pyplot as plt

X_scaled = StandardScaler().fit_transform(X)
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X_scaled)

# 시각화
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y)
plt.xlabel("PC1")
plt.ylabel("PC2")
plt.title("PCA projection")
plt.show()

◆ 해설

1. Q1. 결정 트리의 장점과 단점은 무엇인가요?

결정 트리의 가장 큰 장점은 모델의 결과를 이해하기 쉽다는 것입니다. 트리의 형태로 결정 과정을 시각적으로 나타낼 수 있어, 어떤 속성이 결과에 영향을 미치는지 명확하게 파악할 수 있습니다. 또한, 데이터의 사전 처리가 상대적으로 적게 필요하며, 수치형과 범주형 데이터 모두를 처리할 수 있습니다.

반면, 결정 트리는 과적합(overfitting)이 일어나기 쉬워, 훈련 데이터에는 잘 맞지만 새로운 데이터에 대한 예측 성능이 떨어질 수 있습니다. 특히 트리의 깊이가 깊어질수록 특정 데이터에 과도하게 맞춰져 일반화하는 능력이 저하됩니다. 또한, 작은 데이터 변화에도 모델의 구조가 크게 변할 수 있어, 안정성이 낮을 수 있습니다.

2. 부스팅은 어떤 특징을 가진 앙상블 기법인가요?

토픽에서 배운 AdaBoost 이외의 부스팅 모델에는 무엇이 있는지에 대해 구글 등을 활용하여 직접 리서치해보고, 각 부스팅 모델의 특징, 장단점에 대해 말해주세요.

부스팅(Boosting)은 여러 약한 학습기(weak learners)를 결합하여 강력한 학습기(strong learner)를 만드는 앙상블 기법입니다. 부스팅 모델은 순차적으로 학습을 진행하며, 각 단계에서 이전 모델의 오류를 줄이는 방식으로 성능을 향상시킵니다. AdaBoost 외에 자주 사용되는 부스팅 기법으로는 XGBoost, LightGBM, CatBoost가 있습니다.

(1) XGBoost
Gradient Boosting의 확장판으로, 정규화(term regularization)와 같은 고급 기능을 추가하여 과적합을 방지
장점: 높은 성능, 빠른 학습 속도, 분산 컴퓨팅 지원
단점: 복잡한 하이퍼파라미터 튜닝 필요, 상대적으로 높은 메모리 사용량

(2) LightGBM
Microsoft에서 개발한 알고리즘으로, 대용량 데이터와 고차원 데이터에 최적화.
장점: 빠른 학습 속도와 낮은 메모리 사용량, 높은 정확도를 자랑합니다.
단점: 작은 데이터셋이나 범주형 데이터가 많은 경우에는 성능이 저하될 수 있습니다

(3) CatBoost
Yandex에서 개발한 알고리즘으로, 범주형 데이터를 효율적으로 처리할 수 있도록 설계.
장점: 범주형 데이터를 별도의 전처리 없이도 잘 처리하며, 높은 예측 성능과 과적합 방지 기능을 가지고 있습니다.
단점: 다른 부스팅 알고리즘에 비해 학습 속도가 느릴 수 있으며, GPU 설정이 필요할 수 있습니다

3. 차원 축소 기법인 주성분 분석과 요인 분석의 차이는 무엇인지 설명해 주세요.

주성분 분석(PCA)과 요인 분석(FA)은 모두 고차원 데이터를 저차원으로 축소하기 위한 기법이지만, 그 목적과 접근 방식에서 차이가 있다.

(1) 주성분 분석 (PCA)
주성분 분석은 데이터의 분산(variability)을 최대한 보존하면서 차원을 줄이는 기법이다. 이 방법은 데이터의 주성분을 도출하여 원래 변수들을 해당 주성분으로 대체하는 방식을 취한다. 즉, 데이터의 분포를 가장 잘 설명할 수 있는 새로운 축(주성분)을 찾고, 이를 기준으로 데이터를 변환한다. PCA는 변수 간 상관관계를 고려하지만, 각 변수의 본래 의미에 대해서는 큰 비중을 두지 않는다.

(2) 요인 분석 (FA)
요인 분석은 관찰된 변수들이 몇 개의 잠재적 요인에 의해 설명될 수 있다는 가정 하에 수행된다. 즉, 관찰된 여러 변수들이 공통된 몇 개의 '요인'에 영향을 받는다고 보는 접근 방식이다. 예를 들어, 학생 성적 데이터에서 여러 과목 점수가 '학업 능력'이라는 공통 요인에 의해 설명될 수 있다고 가정하는 것과 유사하다. 요인 분석은 변수 간 관계와 데이터 구조를 이해하기 위해 주로 사용된다.

요약하면,

• PCA는 데이터의 분산을 최대한 보존하는 방향으로 차원을 축소하는 기법이며, 주로 데이터의 구조적 압축을 목적으로 한다.
• FA는 관찰된 변수를 설명하는 잠재 요인을 도출하고 변수 간의 관계를 해석하는 데 중점을 둔다.

따라서, PCA는 분산 보존에 중점을 둔 기법인 반면, FA는 변수 간의 관계 해석에 중점을 두는 기법이라는 차이가 있다.

profile
나는 AI 엔지니어가 된다.

0개의 댓글