이 단원에서는 다음 주제를 살펴봅니다.
- 랜덤 포레스트 해석
- 랜덤 포레스트 학습
- 랜덤 포레스트의 장단점
랜덤 포레스트 해석
랜덤 포레스트는 결정 트리보다 해석이 더 복잡합니다. 랜덤 포레스트 결정 트리가 포함되어 있습니다 따라서 판단하기가 중요합니다. 하지만 확률 분포를 몇 가지 방법을 살펴보겠습니다.
랜덤 포레스트를 해석하는 한 가지 접근 방식은 단순하게 랜덤 포레스트를 학습시키고 해석하는 결정 트리를 생성합니다. 랜덤 포레스트와 CART는 모두 '동일한 글로벌 뷰를 공유'하며 의 데이터 세트로 그룹화됩니다. 이 옵션은 단순한 데이터 세트에 적합하며 모델을 이해하는 데 도움이 됩니다.
변수 중요도 역시 좋은 해석 가능성이 있습니다. 접근하는 것입니다. 예를 들어, 다음 표에서는 랜덤 포레스트 모델에 대해 여러 특성을 인구조사 데이터 세트 (또한 성인용이라고 함).
<ph type="x-smartling-placeholder"></ph> 표 8. 14가지 특성의 변수 중요도 를 통해 개인정보처리방침을 정의할 수 있습니다.
기능 | 합계 점수 | 평균 정확도 감소 | AUC 평균 감소 | 평균 최소 수심 | 노드 수 | PR-AUC 평균 감소 | 숫자 루트 |
---|---|---|---|---|---|---|---|
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 |
occupation | 1939409.3) |
0.0063 |
-0.0040 |
5월 17일 |
221935 |
-0.0060 |
62 |
education_num | 1673648.4 |
0.0023 |
-0.0066 |
6월 09일 |
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 |
인종 | 168,180.9 |
-0.0006 |
-0.0004 |
11.571 |
42262 |
-0.0031 |
0 |
변수 중요도의 정의마다 척도가 다르다는 것을 알 수 있습니다. 특성의 순위에 차이가 발생할 수 있습니다
모델 구조에서 비롯된 변수 중요도 (예: 합계) 점수, 평균 최소 깊이, 노드 수, 위 테이블의 루트 수) 결정 트리와 유사하게 계산된 값('장바구니 | 변수 중요도' 섹션 참조) 랜덤 포레스트를 살펴보겠습니다
순열 변수 중요도 (예: {accuracy, auc, pr-auc}(위 표의 pr-auc})는 모델 제약이 없는 측정값으로, 모든 머신러닝 모델을 학습시킬 수 있습니다 랜덤 포레스트를 사용하면 검증 데이터 세트를 사용하는 대신 순열을 계산하여 아웃바운드 평가로 ML 모델을 조정할 수 있습니다
SHAP (SHapley Additive exPlanations)은 모델 제약이 없는 방법으로 개별 예측을 설명하거나 모델별 해석을 수행할 수 있습니다. (자세한 내용은 해석 가능한 머신러닝 모델 애그노스틱 해석을 소개합니다.) SHAP: 일반적으로 컴퓨팅 비용이 많이 들지만 의사결정 속도가 크게 빨라짐 결정 포레스트를 해석하는 좋은 방법입니다.
사용 예
이전 강의에서는 작은 데이터 세트에서 CART 결정 트리를 학습시켰습니다.
이를 위해 tfdf.keras.CartModel
를 호출합니다. 랜덤 포레스트 모델을 학습시키려면
tfdf.keras.CartModel
를 tfdf.keras.RandomForestModel
로 바꾸기만 하면 됩니다.
model = tfdf.keras.RandomForestModel()
model.fit(tf_train_dataset)
장단점
이 섹션에서는 랜덤 포레스트의 장단점을 간략하게 설명합니다.
장점:
- 결정 트리와 마찬가지로 랜덤 포레스트는 기본적으로 숫자 및 특성 전처리가 필요 없는 경우가 많습니다
- 결정 트리는 독립적이므로 랜덤 포레스트는 있습니다. 따라서 랜덤 포레스트를 빠르게 학습시킬 수 있습니다.
- 랜덤 포레스트에는 훌륭한 결과를 제공하는 기본 매개변수가 있습니다. 조정 모델에 거의 영향을 미치지 않는 경우가 많습니다
단점:
- 결정 트리는 가지치기되지 않으므로 커질 수 있습니다. 더 많은 모델이 노드 수가 100만 개 미만인 것이 일반적입니다. 배포의 크기 (및 추론 속도)는 랜덤 포레스트가 문제가 될 수 있습니다
- 랜덤 포레스트는 내부 표현을 학습하고 재사용할 수 없습니다. 각 결정 트리 (및 각 결정 트리의 각 브랜치)가 데이터 세트 패턴을 지원합니다. 일부 데이터 세트, 특히 테이블이 아닌 데이터 세트 (예: 이미지, 이렇게 하면 랜덤 포레스트는 다른 방법보다 더 나쁜 결과를 초래합니다.