summ의 블로그

[ml] 간단한 정리 (3) 본문

머신러닝

[ml] 간단한 정리 (3)

summ._ 2024. 7. 10. 22:34

 

의사결정 나무 

 

의사결정 나무는 회귀, 분류 문제에 모두 사용이 가능하다. 

  • 최상 root node 하단의 terminal node 존재.
  • 직관적이며, greedy로 학습이 진행됨. 
  • 나무가 깊어질수록 과적합 문제가 발생함. 

<<<데이터의 구역을 나누는 문제>>>

겹치지 않는 구역으로 데이터를 나눔. 

==> 어떻게? 

 

- 회귀:  해당 구역에 있는 데이터의 실제 값과 예측값의 오차제곱합을 최소화함. SSR

 

- 분류: 불순도 impurity를 최소화하도록 나눔. 

 

* 불순도란? 다른 데이터가 섞여 있는 정도를 뜻함.

 

불순도 측정 방법: 지니계수 이용. 

지니계수: 구역 안에서 특정 클래스에 속하는 data 비율을 모두 제외한 값으로 다양성을 계산하는 방법임. 

              = 1- (yes 의 확률)**2 - (no 의 확률)**2

지니계수가 낮을수록 좋음. 

 

 

앙상블 기법 

 

앙상블 기법이란? 여러개의 의사결정 나무를 사용하는 것임. 

 

Voting / Bagging / Boosting 

 

- Voting: 간접투표(회귀 - 평균) / 직접투표(다수결) 로 나뉨. 간단한 연산. 결과가 직관적임.

- Bagging: 복원추출을 이용하여 (부트스트랩) 데이터셋을 생성하고, 모델을 학습하여 결합함.

                 그 후 예측변수를 활용하여 최종 모델을 선택함. 

  • 랜덤샘플링을 이용해 과적합을 방지.
  • 데이터가 불균형하거나 충분하지 않은 경우 유용함.

- Boosting: 여러 약한(성능이 낮은) 모델을 개선하여 강한 모델을 만듦. 

 

 

랜덤 포레스트 

 

랜덤 포레스트란?

입력 데이터에 대한 복원 추출. data set에서 복원 추출하여 n개 훈련 데이터 셋을 생성. n개 의사결정 나무를 학습. 

 

<<< Decision tree + Bagging >>>

 

변수를 일부만 사용하여 과적합을 방지. 어떤 입력변수가 중요한지 알 수 있음. 

 

  • Ada boost: 이전 학습 과정에서 오분류한 데이터를 가중치를 업데이트하며 다음 학습에 적용.
  • Gradient boosting: 가중치 업데이트 과정에 gradeint descent 를 사용함.
  • XG Boost: 정규화가 추가됨. 

데이터 특성을 고려함.

  • LGBM: 범주형 변수 처리가 가능함. 실행 속도가 빠르며, 대용량 데이터에 적용
  • CatBoost: categorical + boosting 범주형변수의 전처리 문제를 해결함. 범주형 수치형 변수 결합 처리. 

 

 

 

'머신러닝' 카테고리의 다른 글

[ml] 간단한 정리 (2)  (0) 2024.07.10
[ml] 간단한 정리 (1)  (0) 2024.07.10
[autoML] 간단한 정리  (0) 2024.05.04