기타 주제

이 단원에서는 다음 주제를 살펴봅니다.

  • 랜덤 포레스트 해석
  • 랜덤 포레스트 학습
  • 랜덤 포레스트의 장단점

랜덤 포레스트 해석

랜덤 포레스트는 결정 트리보다 해석하기가 더 복잡합니다. 랜덤 포레스트에는 랜덤 노이즈로 학습된 결정 트리가 포함됩니다. 따라서 결정 트리 구조에 관해 판단하기가 더 어렵습니다. 하지만 랜덤 포레스트 모델은 여러 가지 방법으로 해석할 수 있습니다.

랜덤 포레스트 해석의 한 가지 접근 방식은 CART 알고리즘으로 결정 트리를 학습하고 해석하는 것입니다. 랜덤 포리스트와 CART는 모두 동일한 핵심 알고리즘으로 학습되므로 데이터 세트의 '동일한 전반적인 보기를 공유'합니다. 이 옵션은 간단한 데이터 세트와 모델의 전반적인 해석을 이해하는 데 적합합니다.

변수 중요도도 해석 가능성을 높이는 또 다른 접근 방식입니다. 예를 들어 다음 표는 인구통계 데이터 세트 (Adult라고도 함)에서 학습된 랜덤 포레스트 모델의 다양한 기능에 대한 변수 중요도를 순위로 매깁니다.

표 8. 14가지 다양한 기능의 변수 중요도입니다.

기능 점수 합계 평균 정확도 감소 평균 AUC 감소 평균 최소 깊이 노드 수 PR-AUC의 평균 감소 루트로 Num
relationship

4203592.6

0.0045

0.0172

4.970

57040

0.0093

1095

capital_gain

3363045.1

0.0199

0.0194

2.852

56468

0.0655

457

marital_status

3128996.3

0.0018

0.0230

6.633

52391

0.0107

750

나이

2520658.8

0.0065

0.0074

4.969

356784

0.0033

200

education

2015905.4

0.0018

-0.0080

5.266

115751

-0.0129

205

직업

1939409.3

0.0063

-0.0040

5.017

221935

-0.0060

62

education_num

1673648.4

0.0023

-0.0066

6.009

58303

-0.0080

197

fnlwgt

1564189.0

-0.0002

-0.0038

9.969

431987

-0.0049

0

hours_per_week

1333976.3

0.0030

0.0007

6.393

206526

-0.0031

20

capital_loss

866863.8

0.0060

0.0020

8.076

58531

0.0118

1

workclass

644208.4

0.0025

-0.0019

9.898

132196

-0.0023

0

native_country

538841.2

0.0001

-0.0016

9.434

67211

-0.0058

0

sex

226049.3

0.0002

0.0002

10.911

37754

-0.0011

13

인종

168180.9

-0.0006

-0.0004

11.571

42262

-0.0031

0

보시다시피 변수 중요도의 정의에 따라 크기가 달라지고 이에 따라 특성 순위가 달라질 수 있습니다.

모델 구조에서 비롯된 변수 중요도 (예: 위 표의 합계 점수, 평균 최소 깊이, 노드 수, 루트로의 수)는 결정 트리('장바구니 | 변수 중요도' 섹션 참고) 및 랜덤 포레스트와 유사하게 계산됩니다.

순열 변수 중요도 (예: 위 표의 {정확도, AUC, pr-AUC}의 평균 감소)는 검증 데이터 세트가 있는 모든 머신러닝 모델에서 계산할 수 있는 모델 독립 측정항목입니다. 하지만 랜덤 포레스트의 경우, 검증 데이터 세트를 사용하는 대신 오프백 평가를 사용하여 순열 변수 중요도를 계산할 수 있습니다.

SHAP (SHapley Additive exPlanations)는 개별 예측이나 모델별 해석을 설명하는 모델 불문 방법입니다. 모델에 관계없는 해석에 관한 소개는 Molnar의 해석 가능한 머신러닝을 참고하세요. SHAP는 일반적으로 계산 비용이 많이 들지만 결정 포레스트의 경우 속도를 크게 높일 수 있으므로 결정 포레스트 해석에 적합합니다.

사용 예

이전 강의에서는 tfdf.keras.CartModel를 호출하여 소규모 데이터 세트에서 CART 결정 트리를 학습했습니다. 랜덤 포레스트 모델을 학습시키려면 tfdf.keras.CartModeltfdf.keras.RandomForestModel로 바꾸면 됩니다.

model = tfdf.keras.RandomForestModel()
model.fit(tf_train_dataset)

장단점

이 섹션에서는 랜덤 포레스트의 장단점을 간단히 요약합니다.

장점:

  • 결정 트리와 마찬가지로 랜덤 포레스트는 기본적으로 숫자 및 범주형 특성을 지원하며, 종종 특성 사전 처리가 필요하지 않습니다.
  • 결정 트리는 독립적이므로 랜덤 포레스트는 동시에 학습할 수 있습니다. 따라서 랜덤 포레스트는 빠르게 학습할 수 있습니다.
  • 랜덤 포리스트에는 종종 우수한 결과를 제공하는 기본 파라미터가 있습니다. 이러한 매개변수를 조정해도 모델에 미치는 영향은 거의 없습니다.

단점:

  • 결정 트리는 프루닝되지 않으므로 크기가 클 수 있습니다. 100만 개가 넘는 노드가 있는 모델이 일반적입니다. 랜덤 포레스트의 크기 (및 추론 속도)가 문제가 될 수 있습니다.
  • 랜덤 포레스트는 내부 표현을 학습하고 재사용할 수 없습니다. 각 결정 트리 (및 각 결정 트리의 각 브랜치)는 데이터 세트 패턴을 다시 학습해야 합니다. 특히 표 형식이 아닌 데이터 세트 (예: 이미지, 텍스트)의 경우 무작위 포레스트가 다른 방법보다 나쁜 결과를 가져옵니다.