편향-분산 상충관계(Bias-variance Trade-off)
1) 편향과 분산의 정의
- 편향(Bias): 점추정
- 예측값과 실제값의 차이
- 모델 학습시 여러 데이터로 학습 후 예측값의 범위가 정답과 얼마나 멀리 있는지 측정
- 편향(Bias(Real)): 모형화(단순화)로 미처 반영하지 못한 복잡성
=> 편향이 작다면 Training 데이터 패턴(복잡성)을 최대반영 의미
=> 편향이 크다면 Training 데이터 패턴(복잡성)을 최소반영 의미 - 분산(Variance): 구간추정
- 학습한 모델의 예측값이 평균으로부터 퍼진 정도(변동성/분산)
- 여러 모델로 학습을 반복한다면, 학습된 모델별로 예측한 값들의 차이를 측정
- 분산(Variance(Real)): 다른 데이터(Testing)를 사용했을때 발생할 변화
=> 분산이 작다면 다른 데이터로 예측시 적은 변동 예상
=> 분산이 크다면 다른 데이터로 예측시 많은 변동 예상
2) 편향과 분산의 관계
- 모델의 복잡도가 낮으면 Bias가 증가하고 Variance가 감소(Underfitting)
: 구간추정 범위는 좁으나 점추정 정확성 낮음
: Training/Testing 모두 예측력이 낮음 - 모델의 복잡도가 높으면 Bias가 감소하고 Variance가 증가(Overfitting)
: 점추정 정확성은 높으나 구간추정 범위는 넓음
: Training만 잘 예측력 높고 Testing은 예측력 낮음 - Bias와 Variance가 최소화 되는 수준에서 모델의 복잡도 선택
3) 편향과 분산 모두를 최소화하는 방법
Bagging vs Boosting
앙상블(Ensemble, Ensemble Learning, Ensemble Method)이란 머신러닝에서 여러개의 모델을 학습시켜,
그 모델들의 예측결과들을 이용해 하나의 모델보다 더 나은 값을 예측하는 방법
- Bagging(Bootstrap Aggregating):
- 부트스트래핑(Bootstraping): 예측값과 실제값의 차이 중복을 허용한 리샘플링(Resampling)
- 페이스팅(Pasting): 이와 반대로 중복을 허용하지 않는 샘플링
- Boosting:
- 성능이 약한 학습기(weak learner)를 여러 개 연결하여 강한 학습기(strong learner)를 만드는 앙상블 학습
- 앞에서 학습된 모델을 보완해나가면서 더나은 모델로 학습시키는 것
Bagging 알고리즘
- 의사결정나무(Decision Tree):
- 렌덤포레스트(Random Forest): 여러개의 의사결정나무(Decision Tree) 생성한 다음, 각 개별 트리의 예측값들 중 가장 많은 선택을 받은 변수들로 예측하는 알고리즘, 의사결정나무의 CLT버전
- clt(중심극한정리) : 표본집단들의 평균값들을 다시 평균을 취하면 이 평균값은 모집단을 대표한다는 것.
- 랜덤포레스트는 여러개의 트리를 만들고 샘플링한것, clt의 개념을 알고리즘에 반영
- clt를 반영함에 있어서의 장점 : 값들이 퍼져있더라도 이를 평균내면 퍼져있는 것을 좁히는 기능을 함. -> 분산을 줄임
- n_estimator -> 샘플링을 몇개씩할지 정하는 것
Boosting 알고리즘
- Adaptive Boosting(AdaBoost): 학습된 모델이 과소적합(학습하기 어려운 데이터)된 학습 데이터 샘플의 가중치를 높이면서 더 잘 적합되도록 하는 방식(학습을 제대로 못한 부분에 가중치를 주면서 학습시키면서 성능을 올림)
- Gradient Boosting Machine(GBM): 아다부스트 처럼 학습단계 마다 데이터 샘플의 가중치를 업데이트 하는 것이 아니라, 학습 전단계 모델에서의 잔차(Residual)을 모델에 학습시키는 방법
- XGBoost(eXtreme Gradient Boosting): 높은 예측력으로 많은 양의 데이터를 다룰 때 사용되는 부스팅 알고리즘
- LightGBM: 현존하는 부스팅 알고리즘 중 가장 빠르고 높은 예측력 제공
해당 포스팅은 패스트캠퍼스의 <파이썬을 활용한 시계열 데이터 분석 A-Z 올인원 패키지> 강의를 듣고 정리한 내용입니다
728x90
반응형
'Data Analysis & ML > Machine Learning' 카테고리의 다른 글
[LTV] BTYD (Buy-till-you-Die) - Pareto / NBD (0) | 2023.02.11 |
---|---|
[프로세스 마이닝] 프로세스 마이닝(PM4PY) (2) | 2021.07.31 |
[Machine Learning][머신러닝] 대출위험도 예측모델링(모델링) (0) | 2020.09.08 |
[Machine Learning][머신러닝] 대출위험도 예측모델링(데이터전처리) (2) | 2020.09.08 |
[Machine Learning][머신러닝] 군집(Clustering) / K-Means Clustering (0) | 2020.09.07 |