AIB Section2. n222 Random Forest (03/03)

Seo_Gury·2022년 3월 9일

AIB 12기

목록 보기
10/16
post-thumbnail

RandomForest

  1. 랜덤포레스트
  2. 순서형인코딩(Ordinal encoding) 과 원핫인코딩
  3. 범주형 변수의 인코딩 방법이 트리모델과 선형회귀 모델에 주는 영향 이해합니다.

1.랜덤포레스트

  • 앙상블 방법은 한 종류의 데이터로 여러 머신러닝 학습모델(weak base learner, 기본모델)을 만들어 그 모델들의 예측결과를 다수결이나 평균을 내어 예측하는 방법을 말합니다. 이론적으로 기본모델 몇가지 조건을 충족하는 여러 종류의 모델을 사용할 수 있습니다.
  • 결정트리들은 각각 독립적
  • 배깅(Bootstrap Aggregating)
  • 부트스트랩(Bootstrap) 샘플링
  • Out-Of-Bag : 부트스트랩에서 추출되지 않은 데이터
from sklearn.ensemble import RandomForestClassifier
RandomForestClassifier(min_samples_split = 9,min_samples_leaf = 1,n_jobs=-1, random_state=10, oob_score=True)
)

2. Ordinal Encoding

  • 범주형 데이터 > 순서형 데이터로 변환
  • ['a','b','c'] > [1,2,3]
  • 범주가 크거나 작은게 구분이 될 때 사용
  • onehot과 다른 점은 원핫은 범주가 열로 바뀌면서 0,1로 반환해주는 반면, ordinal은 열을 유지하면서 안에 있는 데이터를 순서형으로 반환한다.

3. 인코딩의 영향

  • 트리모델은 어떻게 인코딩을 하느냐에 따라서 매우 큰 영향이 있지는 않다. 분류문제이기 때문이다.
  • 회귀모델은 평균을 사용하므로, 순서형으로 인코딩 했을 시에 서울 1, 부산 2, 인천 3으로 했을 경우 1+2 = 3 으로 서울+부산 = 인천이 될 수 있기 때문에 범주에 크기가 있다면 사용이 가능하지만 크기에 크고 작음이 없으면 결과가 잘못 나올 수 있다.
from category_encoders import OrdinalEncoder

pipe = make_pipe(
    OrdinalEncoder(), 
    SimpleImputer(), 
    RandomForestClassifier(random_state=10, n_jobs=-1, oob_score=True)
)

4. 회고

랜덤포레스트는 결정트리의 연장선 같은 느낌이라서 그렇게 크게 어렵지는 않았다. 다행이다. 하지만 하이퍼 파라미터 설정을 만지면서 이러다보면 끝나지가 않겠구나 싶었다. 열심히 해야한다. 항상 재밌다고 느낀다. 일단 내가 집중한다는거 자체가 많이 없는 일이기에 흥미를 느낀다고 생각한다. 화이팅!!

profile
미래의 데이터 분석가~@

0개의 댓글