그라데이션 부스트 결정 트리

배깅 및 부스팅과 마찬가지로 그라데이션 부스팅은 또 다른 머신러닝 알고리즘입니다. 비공식적으로 경사 부스팅에는 다음이 포함됩니다. 두 가지 모델 유형이 있습니다.

  • '약한' 일반적으로 결정 트리인 머신러닝 모델입니다.
  • '강력한' 여러 개의 약한 단어로 구성된 머신러닝 모델 모델을 학습시키는 작업도 반복해야 합니다

경사 부스팅에서는 각 단계에서 새로운 약한 모델이 학습되어 '오류' (의사 응답이라고 함) 현재 강력한 모델의 표현입니다. '오류'에 대해 자세히 설명하겠습니다. 확인할 수 있습니다 지금은 '오류'라고 가정합니다. 는 예측과 회귀 라벨이 있습니다 약한 모델('오류')은 음의 부호를 사용하여 강력한 모델에 추가하여 강력한 모델입니다.

경사 부스팅은 반복적입니다. 각 반복은 다음 수식을 호출합니다.

\[ F_{i+1} = F_i - f_i \]

각 항목의 의미는 다음과 같습니다.

  • $F_i$ 는 $i$ 단계의 강력한 모델입니다.
  • $f_i$ 는 $i$ 단계의 약한 모델입니다.

이 작업은 중지 기준이 충족될 때까지 반복됩니다(예: 최대 과적합이 발생하면 데이터 세트입니다

간단한 회귀 데이터 세트에 대한 경사 부스팅을 설명하겠습니다. 각 항목의 의미는 다음과 같습니다.

  • 목표는 $x$ 에서 $y$를 예측하는 것입니다.
  • 강력한 모델은 0 상수로 초기화됩니다($F_0(x) = 0$).
를 통해 개인정보처리방침을 정의할 수 있습니다.
# Simplified example of regressive gradient boosting.

y = ... # the labels
x = ... # the features

strong_model = []
strong_predictions = np.zeros_like(y) # Initially, the strong model is empty.

for i in range(num_iters):

    # Error of the strong model
    error = strong_predictions - y

    # The weak model is a decision tree (see CART chapter)
    # without pruning and a maximum depth of 3.
    weak_model = tfdf.keras.CartModel(
        task=tfdf.keras.Task.REGRESSION,
        validation_ratio=0.0,
        max_depth=3)
    weak_model.fit(x=x, y=error)

    strong_model.append(weak_model)

    weak_predictions = weak_model.predict(x)[:,0]

    strong_predictions -= weak_predictions

이 코드를 다음 데이터 세트에 적용해 보겠습니다.

하나의 특성 x와 라벨 y에 대한 정답 플롯 플롯은
다소 감쇠된 일련의 사인
있습니다.

<ph type="x-smartling-placeholder"></ph> 그림 25. 하나의 숫자 특성이 있는 합성 회귀 데이터 세트 를 통해 개인정보처리방침을 정의할 수 있습니다.

 

경사 부스팅의 첫 번째 반복 이후의 세 도표는 다음과 같습니다. 알고리즘:

3개 도표 첫 번째 플롯은 강력한 모델의 예측을 보여줍니다.
기울기가 0이고 y절편이 0인 직선입니다. 두 번째 도표는
일련의 사인파인 강력한 모델입니다. 세 번째 그래프는
정사각형 세트인 약한 모델의 예측
있습니다.

<ph type="x-smartling-placeholder"></ph> 그림 26. 첫 번째 반복 후의 3개 도표 를 통해 개인정보처리방침을 정의할 수 있습니다.

 

그림 26의 플롯과 관련하여 다음 사항에 유의하세요.

  • 첫 번째 플롯은 강력한 모델의 예측을 보여주며, 항상 0입니다.
  • 두 번째 플롯은 약한 모델의 라벨인 오류를 보여줍니다.
  • 세 번째 플롯은 약한 모델을 보여줍니다.

첫 번째 약한 모델은 라벨의 대략적인 표현을 학습하는 것으로 특성 공간의 왼쪽 부분 (변형이 가장 많은 부분, 계속해서 잘못된 모델에서 가장 많은 오류가 발생합니다.)

다음은 알고리즘의 또 다른 반복에 대한 동일한 플롯입니다.

3개 도표 첫 번째 플롯은 강력한 모델의 예측을 보여줍니다.
인코더-디코더 모델의 &#39;약한 모델 예측&#39; 플롯에서
그림. 두 번째 도표는 노이즈가 많은 모델의 오차를 보여줍니다.
사인파 집합입니다. 세 번째 플롯은 약한 모델의 예측을 보여주며
두 개의 정사각형
있습니다.

<ph type="x-smartling-placeholder"></ph> 그림 27. 두 번째 반복 이후의 도표 3개 를 통해 개인정보처리방침을 정의할 수 있습니다.

 

그림 27의 플롯과 관련하여 다음 사항에 유의하세요.

  • 이제 강력한 모델에는 0의 단어 중에서 약한 모델의 확인할 수 있습니다
  • 강력한 모델의 새로운 오차는 약간 작습니다.
  • 이제 약한 모델에 대한 새로운 예측은 특성 공간을 제공합니다.

8번 더 반복하여 알고리즘을 실행합니다.

플롯은 강력한 모델이 점차 정답에 가까워지는 것을 보여줍니다.
약한 모델에 대한 예측은 점진적으로
더 약해집니다.

<ph type="x-smartling-placeholder"></ph> 그림 28. 세 번째 반복 및 10번째 반복 이후의 도표 3개. 를 통해 개인정보처리방침을 정의할 수 있습니다.

 

그림 28에서 강력한 모델의 예측은 데이터 세트의 플롯입니다.

이 그림은 결정 트리를 사용하는 경사 부스팅 알고리즘을 도움이 될 수 있습니다 이 조합을 경사 강화 (결정) 트리라고 합니다.

위의 도표는 경사 부스팅의 핵심을 보여줍니다. 그러나 예에는 다음과 같은 두 가지 실제 연산이 없습니다.

  • 축소
  • 뉴턴법의 한 단계로 리프 값 최적화
를 통해 개인정보처리방침을 정의할 수 있습니다.

수축

약한 모델 $f_i$ 에 작은 값 $\nu$를 곱합니다 (예: $\nu = 0.1$)이 강력 모델 $F_i$에 추가됩니다. 이 작은 값을 축소입니다. 즉, 각 반복 대신 공식:

\[ F_{i+1} = F_i - f_i \]

각 반복은 다음 수식을 사용합니다.

\[ F_{i+1} = F_i - \nu f_i \]

경사 부스팅의 축소는 신경망의 학습률과 유사합니다. 축소는 강력한 모델이 학습하는 속도를 제어하여 과적합입니다. 즉, 축소 값이 0.0에 가까울수록 과적합이 더 줄어듭니다. 더 크다는 것을 의미합니다.

위의 코드에서는 축소가 다음과 같이 구현됩니다.

shrinkage = 0.1   # 0.1 is a common shrinkage value.
strong_predictions -= shrinkage * weak_predictions