alpyrithm_알파이리즘
DAY7. Ensemble Learning I 본문
Summary
- Ensemble Learning 기초
- Simple Ensemble Learning
- Averaging
- Weighted Averaging
- Max voting
Main
Ensemble Learning 기초
- Ensemble Learning의 개념
- 모델의 성능 개선을 목적으로 다양한 알고리즘을 이용한 다수의 모델을 통합하는 방법
- 앙상블 학습은 여러 기계 학습 모델을 결합하여 우수한 모델을 생성하여 Variance와 Bias의 영향을 줄이고 성능을 향상시키는 알고리즘
- Top-left는 Bias가 높고 Variance가 낮은 시나리오
- Top-right는 Bias, Variance 모두 높은 시나리오
- 앙상블 모델은 Bias와 Variance가 다른 약한 모델을 많이 결합하여 더 약한 모델을 만들어 개별 약한 모델보다 성능이 우수
- 앙상블 모델은 Crowd Intelligence와 유사
- Simple Ensemble과 Advanced Ensemble 두 가지 유형 존재
- Simple EnsembleTechniques
- Averaging
- Weighted Averaging
- Max Voting
- Advanced Techniques
- Stacking / Blending
- Bagging
- Boosting
- Simple EnsembleTechniques
- Ensemble 방법
- 전체 데이터에서 변수나 데이터를 샘플링하여 만든 훈련용 데이터를 이용하여 다수의 모델을 만들고 결합
- 독립적으로 다수의 모델을 생성하고 결합하여 예측값 평균을 산출하는 모델링 방법
- 순차적으로 이전 모델의 파라미터를 조정하여 오차를 지속적으로 줄이는 모델링 방법
- 장점
- 다수의 모델을 생성/결합하거나 이전 모델의 오차를 지속적으로 개선함으로써 단일 모델보다 성능이 좋고 안정적임
- 전체 분산을 감소시킴으로써 오차를 줄이는 경향성을 보임
- 이상치에 대한 대응력이 높아져 안정적인 결과를 보임
- 과대적합을 줄이는 경향성을 보임
- 단점
- 직관적이지 않고 해석의 어려움
- Case
- 은행의 신용 카드 부서에서 신용 카드 운영 데이터에 기반하여 고객의 신용 여부 판단하는 경우
- Data set에는 약 15개의 variable 신용 카드 내역이 포함, variable은 신용 카드 작업과 관련된 연속 및 범주형 데이터의 혼합
- Data set의 Label은 신용 여부 판단 후, (대출 혹은 카드 발급) 승인 여부를 나타내는 Flag
- 벤치 마크 모델들을 맞추고 Data set에 대한 앙상블 학습 방법 사용
- 주어진 고객의 대출이나 카드 발급 여부를 승인해야 하는지에 대한 가부를 예측하여 결괏값으로 제공 가능
Simple Ensemble Learning
- Averaging
- 기초적인 Ensemble Learning, 매우 유용
- 여러 개별 모델의 예측을 취한 다음 예측을 평균화하여 최종 예측 모델을 생성하는 것
- 주요 조건들
- 서로 다른 개별 학습자의 예측을 평균하여 개별 학습자의 실수를 제거하여 기본 모델보다 우수한 모델을 생성한다고 가정
- 평균화 작업을 수행하기 위한 중요 전제 조건은 기본 모델의 예측을 서로 관련시키지 않는 것으로 이는 개별 모델이 같은 종류의 오류를 만들어서는 안 됨을 의미
- 모델의 다양성은 서로 관련이 없는 에러를 보장
- Codes
- pandas.DataFrame.dropna()
- remove missing values, 결측값 제거
- parameter
- axis
- 0 : 결측값이 들어있는 행 전체 삭제
- 1 : 결측값이 들어있는 열 전체 삭제
- axis
- pandas.get_dummies()
- 범주형 변수를 가변수(dummy variable)로 변환, convert categorical variable into dummy/indicator variables
- sklearn.preprocessing.MinMaxScaler
- 최솟값과 최댓값을 사용해서 '0~1' 사이의 범위(range)로 데이터를 변환
- model.classes_
- sklearn.linear_model.LogisticRegression의 attributes
- a list of class labels known to the classifier
- numpy.argmax
- 가장 큰 값의 인덱스를 반환해주는 함수
- sklearn.metrics.classification_report()
- report showing the main classification metrics
- 정밀도, 재현율, F1점수 제공
- pandas.DataFrame.dropna()
- Weighted Averaging
- Averaging Ensemble의 확장
- 특징
- Averaging Ensemble과 주요 차이점은 결합된 예측이 생성되는 방식
- Weighted Averaging에서는 각 모델의 예측에 가중치를 할당한 다음 결합된 예측을 생성
- 가중치는 어떤 모델이 앙상블에서 가장 영향력이 있는지에 대한 (우리의) 판단에 따라 배정
- 처음에 임의로 할당된 가중치는 많은 실험 후 진화
- 먼저 가중치를 가정한 다음 각 모델마다 다른 가중치로 반복하여 성능이 향상되는지에 대한 확인 필요
- 가중치 iteration(반복) 회수 마다 다르게 정하고 iteration(반복)을 통해 성능 향상을 확인
- Max voting
- 특징
- 다수결 원리에 따라 작동
- Majority가 Roost를 지배
- Individual Learner(개별 학습자)가 Training Set에 Fitting하며 해당 Prediction Model은 Test Set에서 생성
- 각 Indicidual Learner(개별 학습자)의 Prediction을 Voting(투표)로 간주
- Test Set에서 Max Voting(최대 투표)를 받는 클래스가 궁극적 승자
- Codes
- 특징
728x90
반응형
'SM공부 > Data Mining & Machine Learning' 카테고리의 다른 글
DAY9. Data Pipeline (0) | 2020.08.05 |
---|---|
DAY8. Ensemble Learning II (0) | 2020.08.04 |
+) DataFrame 기초 정리 (0) | 2020.07.28 |
DAY6. Supervised Learning III (0) | 2020.07.27 |
DAY5. Supervised Learning II (0) | 2020.07.26 |
Comments