이 세 가지 방법의 유사점과 차이점은 무엇입니까?
- 포장지,
- 일러스트레이션,
- 스태킹?
어느 것이 가장 좋은가요? 그리고 왜?
각각에 대해 예를 들어 주시겠습니까?
이 세 가지 방법의 유사점과 차이점은 무엇입니까?
어느 것이 가장 좋은가요? 그리고 왜?
각각에 대해 예를 들어 주시겠습니까?
답변:
세 가지 모두 소위 "메타 알고리즘": 분산 ( 배깅 ), 바이어스 ( 부스팅 ) 또는 예측력 향상 ( 스택 앨리어스 앙상블 ) 을 줄이기 위해 여러 기계 학습 기술을 하나의 예측 모델로 결합하는 접근 방식입니다 .
모든 알고리즘은 두 단계로 구성됩니다.
원본 데이터의 하위 집합에 간단한 ML 모델의 분포를 생성합니다.
분포를 하나의 "집계 된"모델로 결합
다음은 세 가지 방법 모두에 대한 간단한 설명입니다.
포기할은 (약자 B의 ootstrap AGG regat 보내고 것이 사용하여 원래의 데이터 세트로부터 훈련 추가 데이터를 생성하여 예측의 분산을 감소시키는 방식이다) 의 반복으로 조합을 생성하기 위하여 멀티 세트 원래의 데이터와 동일한 카디널리티 / 크기가. 훈련 세트의 크기를 늘림으로써 모형 예측력을 향상시킬 수는 없지만 분산을 줄이고 예측을 예상 결과에 맞게 조정하면됩니다.
부스팅 은 2 단계 접근 방식으로, 원래 데이터의 하위 집합을 사용하여 일련의 평균 성능 모델을 생성 한 다음 특정 비용 함수 (= 대표)를 사용하여 모델을 결합하여 성능을 "증폭"합니다. 배깅과 달리, 고전적인 부스팅 에서 서브 세트 작성은 무작위 적이 지 않으며 이전 모델의 성능에 따라 다릅니다. 모든 새 서브 세트에는 이전 모델에 의해 잘못 분류 된 요소가 포함됩니다.
스태킹 은 부스팅과 유사합니다. 원본 데이터에 여러 모델을 적용 할 수도 있습니다. 그러나 여기서 차이점은 가중치 함수에 대한 경험적 공식이 아니라 메타 레벨을 도입하고 다른 모델 / 접근법을 사용하여 가중치를 추정하기 위해 모든 모델의 출력과 함께 입력을 추정하거나 다시 말해, 어떤 모델이 잘 수행되고 어떤 입력 데이터에 나쁜 영향을 주 었는지 확인하는 것입니다.
비교표는 다음과 같습니다.
보시다시피,이 모든 모델은 여러 모델을 더 나은 모델로 결합하는 다른 접근 방식이며 여기에는 단일 승자가 없습니다. 모든 것은 도메인과 수행 할 작업에 달려 있습니다. 스태킹 을 계속해서 발전시켜 나갈 수 는 있지만 메타 수준에 대한 좋은 접근 방식을 찾기가 어려우면 실제로이 접근 방식을 적용하기가 어렵습니다.
각각의 간단한 예 :
포장 :
병렬 앙상블 : 각 모델은 독립적으로 제작
편향이 아닌 분산 을 줄이는 것을 목표로
고 분산 저 바이어스 모델 (복잡한 모델)에 적합
나무 기반 방법의 예는 무작위 숲으로 , 완전히 자란 나무를 개발합니다 (RF는 나무 사이의 상관 관계를 줄이기 위해 자란 절차를 수정합니다)
부스팅 :
순차적 앙상블 : 이전 모델이없는 곳에서 잘 작동하는 새 모델을 추가하십시오
편차 가 아닌 편향 을 줄이는 것을 목표로
저 분산 고 바이어스 모델에 적합
트리 기반 방법의 예는 그래디언트 부스팅입니다.
Yuqian의 답변을 조금만 자세히 설명하십시오. 배깅의 기본 개념은 비모수 적 회귀 방법 (일반적으로 회귀 또는 분류 트리이지만 거의 모든 비모수 적 방법 일 수 있음)으로 과잉 복구 할 때 편향의 편차가 많지 않거나 편차가 적다는 경향이 있다는 것입니다 / 분산 트레이드 오프 이는 과적 합 모델이 매우 유연하기 때문에 (동일한 모집단의 많은 재 샘플에 대한 낮은 편향), 변동성이 높습니다 (샘플을 수집하고 과적 합하고 샘플을 수집하여 과적 합하는 경우) 비모수 적 회귀는 데이터의 노이즈를 추적하기 때문에 결과가 다를 수 있습니다). 우리는 무엇을 할 수 있습니까? 부트 스트랩에서 많은 재 샘플링 (각각의 오 버핏)을 취하고 평균을 구할 수 있습니다. 이는 동일한 편향 (낮음)으로 이어지지 만 일부 분산을 취소해야합니다.
그라디언트 부스팅은 UNDERFIT 비모수 적 회귀와 함께 작동하며 너무 단순하여 데이터의 실제 관계를 설명하기에 충분히 유연하지는 않지만 (즉, 편향적), 적합하지 않기 때문에 분산이 낮습니다. 새 데이터 세트를 수집하는 경우 동일한 결과를 얻으려면). 이 문제를 어떻게 해결합니까? 기본적으로 적합하면 모형의 잔차에는 여전히 유용한 구조 (모집에 대한 정보)가 포함되므로 잔차를 기반으로하는 나무를 사용하여 보유한 나무 (또는 비모수 예측 변수)를 보강합니다. 원래 트리보다 융통성이 있어야합니다. k-1 단계의 잔차에 맞는 트리를 기반으로 가중치 k가 추가 된 단계 k에서 더 많은 트리를 반복적으로 생성합니다. 이 나무 중 하나가 최적이어야합니다. 그래서 당신은이 모든 나무들에 가중치를 부여하거나 가장 적합한 것으로 보이는 것을 선택함으로써 끝납니다. 따라서 그래디언트 부스팅은보다 유연한 후보 트리를 만드는 방법입니다.
모든 비모수 적 회귀 또는 분류 접근법과 마찬가지로, 때때로 bagging 또는 boosting은 훌륭하게 작동하며 때로는 하나 또는 다른 접근법이 평범하며 때로는 하나 또는 다른 접근법 (또는 둘 다)이 충돌하여 타 버릴 수 있습니다.
또한이 두 가지 기법을 모두 나무 이외의 회귀 접근 방식에 적용 할 수 있지만, 나무와 가장 관련이 있습니다. 아마도 적합치 또는 과적 합을 피하기 위해 매개 변수를 설정하기가 어려울 수 있습니다.
간단히 말해서, Bagging 과 Boosting 은 일반적으로 하나의 알고리즘 내에서 사용되는 반면, Stacking 은 일반적으로 다른 알고리즘의 여러 결과를 요약하는 데 사용됩니다.
Random Forest
하여 분산을 제거하고 과적 합 문제가 없습니다.GBM
과 같은 이전 오류로 인한 오류를 파악하려고 시도 XGBoost
하여 분산을 제거하지만 과적 합 문제가 있다는 것입니다.배깅과 부스팅은 모든 단계에서 단일 학습 알고리즘을 사용합니다. 그러나 훈련 샘플을 처리 할 때 다른 방법을 사용합니다. 둘 다 여러 모델의 결정을 결합한 앙상블 학습 방법입니다 .
Bagging :
1. 훈련 데이터를 재 샘플링하여 M 서브 세트를 가져옵니다 (부트 스트래핑).
2. M 개의 데이터 세트 (다른 샘플)에 기초하여 M 개의 분류기 (동일 알고리즘)를 훈련시킨다;
3. 최종 분류기는 투표에 의해 M 개의 출력을 결합합니다.
샘플 무게 동일;
분류기의 무게는 동일합니다.
분산을 줄임으로써 오류를 줄입니다.
Boosting : adaboost 알고리즘에 중점을 둡니다
. 1. 첫 번째 라운드의 모든 샘플에 대해 동일한 가중치로 시작합니다.
2. 다음 M-1 라운드에서 마지막 라운드에서 잘못 분류 된 샘플의 무게를 늘리고 마지막 라운드에서 올바르게 분류 된 샘플의 무게를 줄입니다.
3. 가중치 투표를 사용하여 최종 분류기는 이전 라운드의 여러 분류기를 결합하고 더 큰 가중치를 부여합니다. 오 분류가 적은 분류 자에게
단계적으로 무게를 재는 샘플;
리샘플링 (포장) 대신 마지막 라운드 재 중량 샘플 (부스팅)의 결과를 기반으로 한 각 라운드의 가중치 .