랜덤 포레스트 이전에 기능 선택을 사용하는 것이 합리적입니까?


답변:


6

그렇습니다. 그것은 매우 일반적입니다. 기능의 ~ 50 % 이상을 기대할 경우 중복되지는 않지만 전혀 쓸모가 없습니다. 예를 들어 randomForest 패키지에는 randomForest를 미리 훈련시키고 가장 중요한 변수를 생략하는 래퍼 함수 rfcv ()가 있습니다. rfcv 기능은이 장을 참조하십시오 . 지나치게 낙관적 인 결과를 피하려면 외부 교차 검증 루프에 기능 선택 + 모델링을 포함시켜야합니다.

[아래 편집]

나는 "전적으로 쓸모없는"것을 조절할 수있었습니다. 단일 랜덤 포레스트는 올가미 정규화를 사용한 회귀 분석이 기능을 뒷받침하는 기능인 경우에도 기능을 완전히 무시하지 않는 경우가 많습니다. 기능별 의사 결정 트리 분할은 수천 또는 수백만 노드 중 하나의 로컬 기준에 따라 선택되며 나중에 취소 할 수 없습니다. 필자는 절단 기능을 하나의 우수한 선택으로 옹호하지는 않지만 일부 변수 세트는이 변수 선택을 사용하여 예측 성능 (반복 된 외부 교차 검증 으로 추정)을 크게 향상시킬 수 있습니다. 일반적인 결과는 기능의 100 %를 유지하거나 몇 퍼센트 만 잘 작동하지 않으면 비슷한 예측 성능을 가진 넓은 중간 범위가있을 수 있다는 것입니다.

아마도 합리적인 경험 법칙 : 올가미와 같은 정규화가 주어진 문제에 대해 능선과 같은 정규화보다 더 나은 기능을 기대할 때 임의의 포리스트를 사전 훈련하고 내부 가방에 의해 기능의 순위를 매길 수 있습니다 교차 검증 된 변수 중요도를 확인 하고 가장 중요하지 않은 일부 기능을 삭제 해보십시오 . 변수 중요도 는 특정 기능이 예측 전에 훈련 후 순열 (값 셔플) 될 때 교차 검증 된 모델 예측이 얼마나 감소하는지 정량화합니다. 하나의 특정 기능이 포함되어야하는지 확실하지 않지만, 상위 5 % 기능은 하위 5 %보다 예측하기가 훨씬 쉽습니다.

실용적인 관점에서, 기능 당 고정 획득 비용이있는 경우 계산 실행 시간이 단축되고 일부 리소스가 절약 될 수 있습니다.


5
기능이 쓸모 없다는 것을 알려주는 데이터 기능은 매우 제한적이며, 참조하는 옵션이 랜덤 포레스트 알고리즘에 통합되기를 바랍니다. 후보 기능을 임의 포리스트 알고리즘으로 보내기 전에 기능을 사전에 삭제하는 것은 적절하지 않습니다.
Frank Harrell

@ FrankHarrell, 나는 내 대답을 정교화하려고 노력했다
Soren Havelund Welling

2
다른 목적으로 다른 점수 규칙을 선택한다는 데 동의하지 않습니다. 부적절한 정확도 점수 규칙은 잘못된 기능을 선택하고 잘못된 가중치를 부여합니다. 특정 점수 규칙의 임의성이 더 분명합니다. 최적의 예측 모델을 선택한 다음 확실한 의사 결정 이론을 사용하여 해당 모델을 사용하여 최적의 결정을 내리는 것이 훨씬 좋습니다. 이는 연속 예측에 유틸리티 기능을 적용하여 수행됩니다.
Frank Harrell

1
@FrankHarrell-이 질문에 대한 자세한 답변을 줄 수 있습니까? 분명히 기능 선택에 반대하는 몇 가지 강력한 주장이 있습니다.
ihadanny

1
이것에 대해 배우는 가장 좋은 방법은 기능 선택을 시도하는 절차와 그렇지 않은 절차의 엄격한 부트 스트랩 내부 검증을 수행하는 것입니다. 종종 종종 예측 차별 (적절한 정확도 스코어링 규칙을 사용하거나기능 선택을 시도하지 않으면 -index (ROC 영역)가 더 좋습니다. 기능 선택은 거의 항상 임의적입니다.
Frank Harrell
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.