기계 학습 - 통합 학습(부스팅, 배깅, Adaboos, GBDT, XGBoost)

참조 링크: https://blog.csdn.net/v_JULY_v/article/details/81410574

머리말

앙상블 학습(Ensemble learning) : 다수의 학습자를 구성하고 결합하여 학습과제를 완성, 즉 개별 학습자의 그룹을 먼저 생성한 후 이를 일정한 전략으로 결합 개별 학습자는 기존의 학습 알고리즘에서 파생되어 훈련 데이터에서 생성, 동시에 어느 정도의 정확성이 있어야 하고, 너무 나쁘지 않고, 다양성이 있어야 하며, 학습자마다 차이가 있어야 합니다. 앙상블 학습기는 일반화 성능을 크게 향상시킵니다.

그러나 다양성과 정확성은 상반되는 것으로서 정확성이 높아지면 다양성이 희생되기 때문에 어떻게 하면 우수하고 다른 학습자를 만들어 내느냐가 통합 학습의 핵심이다.

두 가지 분기: Boosting 및 Bagging, 전자는 개별 학습자 간의 강력한 종속성을 통해 직렬화를 직렬화하고 후자는 개별 학습자 간의 강력한 종속성 없이 병렬 메서드를 생성합니다.

1. 부스팅

약한 학습자를 강한 학습자로 승격시키는 일련의 방법: 잘못 분류된 샘플의 가중치를 높이고 올바르게 분류된 샘플의 가중치를 줄여서 알고리즘이 잘못 분류된 샘플에 더 많은 주의를 기울이도록 합니다.

작동 메커니즘:
먼저 약한 학습자 1을 훈련 세트에서 초기 가중치로 훈련하고 약한 학습의 학습 오류율 성능에 따라 훈련 샘플의 가중치를 업데이트하여 훈련의 가중치를 이전 약한 학습기 1의 학습 오류율이 높은 샘플 포인트가 높아져서 다음 약한 학습기 2에서 오류율이 높은 샘플 포인트가 더 주목받게 됩니다. 그런 다음 가중치가 조정된 훈련 세트를 기반으로 약한 학습자 2를 훈련시키고, 이를 미리 지정된 T 수의 약한 학습자 수에 도달할 때까지 반복하고 최종적으로 이들 T개의 약한 학습자를 앙상블 전략을 통해 통합하여 최종 강한 학습자.

(1) 아다부스트

AdaBoost는 주로 이진 분류 문제 에 사용되는 Boosting의 고전적인 알고리즘입니다 .

Adaboost 알고리즘은 샘플 가중치를 조정하여 샘플 분포를 조정합니다 . 다음 라운드에서 올바르게 분류될 수 있도록 더 많은 주의를 기울이면 일련의 약한 분류기로 분류 문제를 "분할 및 정복"하게 됩니다. 결합 방법으로 AdaBoost는 가중 다수결 방식을 채택하며, 가산 모델은 강한 분류기가 일련의 약한 분류기에 의해 선형적으로 추가됨을 의미합니다. 구체적으로 분류 오류율이 작은 Ruo 분류기의 가중치를 높이고 분류 오류율이 큰 Ruo 분류기의 가중치를 줄여 투표에서의 역할을 조정합니다. AdaBoost 알고리즘은 모델이 가산 모델이고 손실 함수가 지수 함수이고 학습 알고리즘이 순방향 단계별 알고리즘인 경우 이진 분류 알고리즘입니다.

(2) GBDT (Gradient Boosting Decision Tree) 그래디언트 부스팅 트리

GBDT는 여러 트리의 출력 예측 값의 누적이며 GBDT의 트리는 모두 분류 트리가 아닌 회귀 트리입니다.

그래디언트 부스팅 트리는 손실함수가 일반 손실함수일 때 부스팅 트리의 최적화 알고리즘을 풀기 위한 것으로 그래디언트 부스팅 알고리즘이라고 한다. 현재 모델 값의 손실 함수 기울기.
구체적인 방법은 손실 매개변수를 먼저 초기화한 다음 손실 함수를 계산하고 파생 값을 도출하여 회귀 트리에 맞게 노드 영역을 얻는 것입니다. 손실 함수의 음의 기울기를 잔차로 사용합니다(2차 테일러 확장).

둘, 배깅과 랜덤 포레스트

(1) Bagging
Bagging의 알고리즘 원리는 Boosting과 달리 약한 학습자는 종속성이 없으며 병렬로 생성할 수 있습니다.

작동 메커니즘:

배깅의 개별 약한 학습자의 훈련 세트는 무작위 샘플링으로 얻습니다. T번의 무작위 샘플링을 통해 T개의 샘플링 세트를 얻을 수 있으며, 이 T개의 샘플링 세트에 대해 T개의 약한 학습자를 독립적으로 훈련한 다음 집합 전략을 사용하여 최종 T개의 약한 학습자를 얻을 수 있습니다.
여기에서는 부트스탬프 샘플링 방법이 일반적으로 사용됩니다. 즉, m 샘플의 원래 교육 세트에 대해 매번 무작위로 샘플을 수집하여 샘플링 세트에 넣은 다음 샘플을 다시 넣습니다. 즉, 샘플링할 때 다음번에도 여전히 샘플을 수집할 가능성이 있으므로 m번을 수집하면 최종적으로 m개의 샘플로 구성된 샘플링 세트를 얻을 수 있습니다. 또한 다른 샘플링 세트와 다르기 때문에 여러 개의 서로 다른 약한 학습자를 얻을 수 있습니다.
Bagging 앙상블 교육의 복잡성은 학습자를 교육하기 위해 기본 분류기 알고리즘을 직접 사용하는 것과 동일하며, 이는 Bagging이 효율적인 앙상블 학습 알고리즘임을 나타냅니다.

(2) 랜덤 포레스트(줄여서 RF)

랜덤 포레스트는 배깅의 확장입니다. 기본 학습자로 결정 트리를 사용하여 Bagging 앙상블을 구성하는 것을 기반으로 RF는 결정 트리의 학습 과정에서 무작위 속성 선택을 추가로 도입합니다 .개별 학습자를 생성하는 과정에서 샘플 교란뿐만 아니라 속성 교란이 추가됩니다. 구체적으로 기존 의사결정 트리는 분할 속성 선택 시 현재 노드의 속성 집합(d개의 속성이 있다고 가정)에서 최적의 속성을 선택하는 반면, RF에서는 기본 의사결정 트리의 각 노드에 대해 속성부터 시작한다. 노드의 집합에서 k 속성을 임의로 선택하여 속성 집합을 구성한 다음 속성 집합에서 최적의 파티션 속성을 선택하며 일반적으로 k=log2d를 권장합니다.

랜덤 포레스트의 장점:

1. 특징 선택 없이 매우 높은 차원의 데이터를 처리할 수 있다
2. 훈련이 끝난 후 어떤 속성이 더 중요한지 부여할 수 있다
3. 병렬 방법을 만들기 쉽고 속도가 빠르다 4.
그것은 시각화 및 표시 가능 분석이 용이합니다.

랜덤 포레스트와 배깅의 비교:

1. 둘의 수렴은 비슷하지만 RF의 초기 성능은 상대적으로 좋지 않으며, 특히 기본 학습기가 하나만 있는 경우에 그러합니다. 랜덤 포레스트는 일반적으로 기본 학습자의 수가 증가함에 따라 더 낮은 일반화 오류로 수렴합니다.
2. 배깅은 "결정론적" 결정 트리인 반면 랜덤 포레스트는 "랜덤" 결정 트리를 사용하기 때문에 랜덤 포레스트의 훈련 효율성은 종종 배깅보다 낫습니다.

3. XGBoost

트리 부스팅을 위한 확장 가능한 기계 학습 시스템인 XGBoost(eXtreme Gradient Boosting)는 많은 CART 트리에 통합되어 있으며 이 시스템은 오픈 소스 소프트웨어 패키지로 사용할 수 있습니다. GBDT의 우수한 버전은 부스팅 방식에 속합니다.

CART 트리
(Classification And Regression Tree, 통칭 분류 트리 및 회귀 트리) CART 는 지니 지수를 사용하며, 지니 지수가 작을수록 데이터 세트의 순도가 높습니다 . 예를 들어 약이 진품인지 가품인지, 주말에 영화를 보러 갈지 말지를 판단하는 등의 클래스 형태이다. 분류의 목표는 알려진 샘플의 특정 특성을 기반으로 새 샘플이 속하는 알려진 샘플 클래스를 판단하는 것이며 그 결과는 이산 값입니다.
ID3 정보 이득: 여기에 이미지 설명 삽입
C4.5에 대한 이득률

2. 회귀 트리 의 샘플 출력은 값의 형태로 되어 있는데, 예를 들어 누군가에게 발행된 주택 대출 금액은 특정 값으로 암의 확률을 예측합니다. 회귀 결과는 연속 값입니다. 회귀 트리는 트리가 이진 트리라고 가정하고 계속해서 기능을 분할합니다. 예를 들어 현재 트리 노드를 j번째 고유값을 기준으로 분할하는데, 고유값이 s보다 작으면 샘플은 왼쪽 서브트리로, s보다 큰 샘플은 오른쪽 서브트리로 나누는 것이 본질이다. 이 기능 차원의 샘플 공간이 나뉩니다.

목적 함수: 여기에 이미지 설명 삽입
최적 분할 특징점 j와 최적 분할점 s를 풀고자 할 때, 다음과 같은 목적함수 풀이로 변환됩니다: 여기에 이미지 설명 삽입
모든 특징의 모든 분할점을 통과하는 한 최적 분할점을 찾을 수 있습니다. 기능 및 분할 지점. 마지막으로 회귀 트리를 얻습니다.

목적 함수 유도:
여기에 이미지 설명 삽입
정규화 항을 가져옵니다.

여기에 이미지 설명 삽입
3. 트리 구성 방법:
1) 서로 다른 트리 구조를 모두 열거하는 탐욕적인 방법
현재 상황은 트리 구조만 알면 그 구조 아래에서 가장 좋은 점수를 얻을 수 있는데 트리 구조를 어떻게 결정해야 할까요?
이를 당연시하는 한 가지 방법은 서로 다른 트리의 구조를 지속적으로 열거한 다음 스코어링 기능을 사용하여 최적의 구조를 가진 트리를 찾은 다음 모델에 추가하고 이 작업을 반복하는 것입니다. 그리고 다시 생각해 보면 기본적으로 무한한 상태인 열거할 수 있는 상태가 너무 많다는 것을 알게 될 것입니다. 그렇다면 어떻게 해야 할까요?
그리디 방법을 해보자 트리 깊이 0부터 시작하여 각 노드는 나이, 성별 등 모든 특징을 순회한 다음 특징에 대해 먼저 특징에 있는 값에 따라 정렬한 다음 특징을 선형적으로 스캔하고 그런 다음 최상의 세분화 지점을 결정하고 마지막으로 모든 기능을 나누고 소위 게인이 가장 높은 기능을 선택합니다. 게인과 게인을 계산하는 방법은 무엇입니까?
여기에 이미지 설명 삽입
(2) 대략적인 알고리즘은
주로 직접 계산하기에는 너무 큰 데이터를 위한 것입니다.
도입된 분할로 인한 이득이 설정된 임계값보다 작을 때 이 분할을 무시할 수 있으므로 모든 분할이 전체 손실 함수를 증가시키는 것은 아니며, 이는 약간의 사전 가지치기입니다. 임계값 매개변수는 (즉, 정규 항 트리의 리프 노드 수 T의 계수)
트리가 최대 깊이에 도달하면 결정 트리 구축을 중지하고 하이퍼 매개 변수 max_depth를 설정하여 너무 깊은 트리를 피하고 로컬 샘플을 학습하도록 합니다. 과적합;
샘플 가중치 합계가 설정된 임계값보다 작으면 빌드를 중지합니다. 즉, GBM의 min_child_leaf 매개변수와 유사하지만 완전히 동일하지는 않은 최소 샘플 가중치 및 min_child_weight와 같은 하이퍼 매개변수를 포함합니다. 일반적인 아이디어는 리프 노드의 샘플이 너무 적고 과적합을 방지하기 위해 종료된다는 것입니다.

원본 링크: https://blog.csdn.net/v_JULY_v/article/details/81410574

추천

출처blog.csdn.net/PETERPARKERRR/article/details/122060433