Tree Based Model이란?

2023. 5. 8. 18:33·Data Scientist
728x90

결정트리

  • 스무고개?
    • Yes or No / Question의 대답으로 target data 분할하는 algoritm
  • 비용함수를 최소로 하는 특성에서 스무고개 하듯 분기함 ⇒ If ~ Then ~ Else ~
  • 선형회귀와 다르게 가정에서 자유로워 데이터 간의 관계를 잘 찾아냄
  • 비선형/비단조 데이터의 패턴을 잘 학습해냄

비용함수

회귀 - squared_error

분류 - 불순도

불순도

  • 여러 가지의 클래스가 섞여 있는 정도
  • 한 노드의 모든 샘플이 같은 클래스에 속해있을 때 값이 0
  • 범주들이 섞여 있을 수록 불순도가 올라감

특성 중요도

  • 가장 영향력 있는 특성을 특성 중요도에서 확인 (회귀계수X)
  • 비교적 먼저, 자주 분기에 사용되었는지에 따라 특성 중요도를 계산

장점

  • 시각화 가능
  • 전처리 과정이 많이 필요하지 않다

단점

  • 과적합이 일어날 확률이 높다
  • 작은 데이터 변동으로도 다른 트리가 생성될 수 있다
  • 외삽이 어렵다

앙상블 → 합치다

  • 여러 모델을 만든 다음 이를 결합하여 계산된 결과를 생성하는 기법
  • 앙상블 기법
    1. 배깅
    2. 부스팅
    3. 스태킹

배깅 ( Bootstrapping Aggregation )

부트스트랩(Bootstrap)

  • random sampling with replacement → 복원추출
  • 샘플에서 복원추출해서 새로운 샘플들을 만드는 방법
  • 한 번에 샘플링에 동일한 샘플이 여러번 포함 될 수 있다는 점 → 다양한 데이터로 학습

Aggregation

  • 결정 트리 → 모든 특성을 고려하여 특성을 고르고 분할
  • 랜덤 포레스트 → 특성 n개 중 무작위로 일부분 k개 (= log2n) 의 특성 선택
  • ⇒ 다양한 데이터 + 다양한 특성의 조합 ⇒ 다양한 트리를 만든다
  • 새로운 데이터가 들어왔을 때 각각 예측하게 만듦 → 평균/최빈값

Pipeline

make_pipeline

  1. 편의성과 캡슐화 (encapsulation)
    • fit 과 predict를 한번 사용해도 전체 모델의 과정 수행가능
    • 코드 간소화로 가독화 Up
  2. 하이퍼 파라미터 선택
    • 한번에 모든 필요한 하이퍼 파라미터를 서치할 수 있다
  3. 안전성 (데이터 리키지 방지)
    • test data의 정보가 train data로 누수되는 것을 방지
  • 처리해주는 순서가 중요!
  • 각 스텝에 대해 접근이 가능함
    • named_steps 속성을 사용해서 각 스텝에 접근 가능
728x90
반응형

'Data Scientist' 카테고리의 다른 글

차원축소의 목적과 방법  (0) 2023.08.11
Boosting이란?  (0) 2023.05.08
'Data Scientist' 카테고리의 다른 글
  • 차원축소의 목적과 방법
  • Boosting이란?
Balang
Balang
음악 전공생의 개발일지
  • Balang
    Balang
    Balang
  • 전체
    오늘
    어제
  • 반응형
    • All Post (148) N
      • python (45)
        • selenium (4)
        • algorithm (9)
        • Django (6)
        • Pandas | Numpy (22)
      • SQL (9)
      • Data Engineer (30) N
      • Data Scientist (3)
      • Data Analysis (9)
      • Computer Science (35)
      • Why? (15)
      • 마음가짐 (2)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
Balang
Tree Based Model이란?
상단으로

티스토리툴바