모델 스크리닝 테스트 세트에서 XGBoost의 통계적 성능안녕하세요,
질병 분류를 위해 여러 머신러닝(ML) 모델을 비교하기 위해 모델 스크리닝과 중첩 교차 검증을 사용하고 있습니다. XGBoost는 ROC-AUC 및 오분류율에 대해 테스트 폴드에서 가장 우수한 성능을 보이고 있습니다. 하지만 의사결정 임계값 분석을 수행하여 다른 통계량을 더 자세히 살펴보려고 하면 다른 모든 모델의 성능(F1 점수, MCC, 민감도, 사양 등)은 나오지만 테스트 세트에서는 XGBoost의 성능이 나오지 않습니다. 이유가 무엇일까요? 이러한 통계량도 보고하고 싶은데, XGBoost 모델에서도 테스트 폴드에 대한 통계량을 얻을 수 있는 방법이 있을까요?
문안 인사,
월요일
기본 데이터 분석 및 모델링예측 모델링 및 머신 러닝Re: 모델 스크리닝 테스트 세트에서 XGBoost의 통계적 성능안녕하세요 @루 ,
명확히 하자면, 결정 임계값 조정은 테스트 세트가 아닌 검증 세트에서 수행해야 합니다.
사용된 용어와 그 사용에 대한 몇 가지 알림은 다음과 같습니다.
- 훈련 세트 : 모델의 실제 학습 에 사용됨
- 검증 세트 : 모델 최적화(하이퍼매개변수 미세 조정, 기능/임계값 선택 등) 및 모델 선택에 사용됩니다.
- 테스트 세트 : 새로운 데이터나 이전에 보지 못한 데이터에 대해 선택된 모델의 일반화 및 예측 성능 평가에 사용됩니다.
검증 세트의 목적은 모델을 비교하고 선택하고, 하이퍼파라미터나 결정 임계값을 미세 조정하는 데 도움이 되는 것입니다.
테스트 세트는 모델 학습 및 미세 조정 중에는 어떤 방식으로도 사용되어서는 안 됩니다. 테스트 세트는 모델의 최종적인 편견 없는 "검증"과 모델 성능의 최종 평가 역할을 하기 때문입니다.
다음 대화에서 검증 세트와 테스트 세트의 차이점에 대해 자세히 알아볼 수 있습니다.
JMP Pro에서 테스트 데이터와 훈련 데이터에 별도로 모델을 적용한 경우에도 출력에 "훈련" 및 "검증" 결과가 표시되는 경우 테스트 데이터와 훈련 데이터만의 결과를 얻으려면 어떻게 해야 합니까? 교차 검증 - 검증 열 방법
...
구체적인 질문에 대해 말씀드리자면, 제가 오해하지 않는다면 XGBoost는 @russ_wolfinger 가 만든 추가 기능을 통해 JMP Pro 버전에서만 사용할 수 있습니다. 따라서 추가 기능을 통해 추가된 기능이기 때문에 모든 모델 튜닝 옵션(예: 의사 결정 임계값)을 사용할 수 없을 수 있습니다. JMP 위시리스트 에 대한 위시리스트를 만들거나 XGBoost 추가 기능 전용 페이지에 이 상황에 대한 의견을 작성할 수 있습니다.
하지만 XGBoost가 가장 우수한 모델인 경우 다음과 같은 결과가 나올 수 있습니다.
- 먼저 테스트 데이터와 훈련/검증 데이터를 분리하세요! 이렇게 하면 테스트 데이터는 어떤 단계에서도 모델에 반영되지 않으며, 모델에 고정된 하이퍼파라미터와 결정 임계값이 설정된 경우에만 테스트 데이터를 사용할 수 있습니다.
- 훈련/검증 데이터 세트에 K-폴드 검증 열을 만듭니다.
- XGBoost 플랫폼을 실행하고(추가 기능 메뉴에서), K-폴드 열 검증을 지정합니다.

- XGBoost 훈련을 실행하고 검증 세트에 대한 결정 임계값을 조정합니다.

- 예측 공식을 저장하고 테스트 세트의 성능을 평가합니다.
이 답변이 도움이 되기를 바랍니다.
Re: 모델 스크리닝 테스트 세트에서 XGBoost의 통계적 성능@Victor_G 님, 훌륭한 답변 감사합니다.
@루 , 모델 스크리닝과 관련하여 버전 19에서 누수 문제를 해결했습니다. 현재 얼리 어답터를 통해 이용 가능하며 몇 주 안에 출시될 예정입니다. 19 버전을 받으시면 다시 실행해 보시기를 권장합니다. XGBoost 테스트 결과는 정상적으로 표시될 것으로 예상되며, @Victor_G 님 이 지적하셨듯이 모델 비교 시에는 항상 테스트 세트 분할을 사용하시기 바랍니다.
XGBoost와 Torch는 다른 JMP 플랫폼과 달리 학습과 검증의 두 방향 분할만 사용하지만, 학습 중에는 검증 결과를 미리 확인하지 않으므로 검증 결과 누수가 발생하지 않습니다. 이 플랫폼의 설정은 단일 3방향 분할 대신 완전한 K-폴드 교차 검증과 폴드 외부 예측을 저장하도록 설계되었습니다.
몇 가지 추가 제안:
1. @Victor_G 님 이 설명한 대로 XGBoost의 독립 실행형 설정을 사용하여 Autotune 옵션을 사용해 보세요. (추가 기능에는 Make K-Fold Columns 유틸리티도 포함되어 있습니다.) 폴드 외부에서 더 나은 성능을 얻을 수 있을 것입니다.
2. Torch Deep Learning 신경망도 비교를 위해 꼭 시도해 볼 만한 가치가 있으며, 최고의 성능을 얻으려면 XGBoost와 앙상블을 적용하세요.
Re: 모델 스크리닝 테스트 세트에서 XGBoost의 통계적 성능Victor와 Ross, 훌륭한 답변 감사합니다. 19버전 모델 스크리닝 플랫폼의 새로운 기능이 곧 공개될 예정이라 벌써부터 기대됩니다!
문안 인사,
게임