부스트 트리 플랫폼으로 k-폴드 교차 검증을 수행할 수 있는 방법이 있나요?
모델 스크리닝에서 이것이 가능하다는 것을 알고 있지만, 최대 성능을 제공하는 k-폴드로 하이퍼튜닝해야 합니다. 따라서 모델 스크리닝을 사용하는 대신 부스트 트리 예측 모델링으로 k-폴드 교차 검증을 수행하여 다른 매개변수도 하이퍼튜닝할 수 있는 방법이 있습니까?
시간을 내어 답변해 주셔서 감사합니다.
니샤
K-폴드와 부스트 트리를 사용하고 싶다면 XGBoost 앱을 사용해 보세요.
JMP Pro용 XGBoost 추가 기능 - JMP 사용자 커뮤니티
스티브
안녕하세요 @NishaKumar2023 님 ,
하이퍼파라미터를 튜닝하는 동안 K-폴드 교차 검증을 사용할 수 있지만, 의도한 대로 정확히 작동하지는 않습니다. 다음은 방법론입니다.
- K-폴드 검증 열 만들기(목표와 재현성 요구 사항에 따라 고정 또는 수식): 검증 열 만들기 플랫폼(jmp.com) 시작
계층화를 사용하여 폴드에서 데이터를 분할하는 것이 대표적이고 균형 잡혔는지 확인하고, 그룹화(예: 동일한 폴드 내의 동일한 ID)를 사용하여 데이터의 제약 조건/중복을 존중하는지 확인하세요.
- 시작하려는 Boosted Tree(또는 다른 플랫폼)에 대한 튜닝 데이터 테이블을 열거나 만듭니다. 저는 Boosted Tree에 대한 예를 복사에 추가했지만, @SDF1 이 제공한 다른 튜닝 테이블은 이 게시물에서 찾을 수 있습니다: 튜닝 디자인 테이블이 있는 Bootstrap Forest에서 오작동?
- Boosted Tree(또는 다른 모델링 플랫폼)를 시작할 때 입력과 모델에 대한 응답을 지정하고 검증 패널에서 K-폴드 검증 열을 사용합니다(여기서는 Mushroom JMP 데이터 세트에 있음):

- 새 창이 뜨면 "튜닝 테이블 사용"을 체크한 다음 이미 열려 있는 튜닝 테이블을 선택해야 합니다.

- 그러면 가장 잘 조정된 모델이 제공하는 결과가 표시됩니다.

이 방법은 튜닝 테이블을 사용하면 데이터를 3개 세트로만 분할하기 때문에 K-폴드 교차 검증에는 적합하지 않습니다.
- 훈련 세트 : 모델의 실제 훈련 에 사용됨
- 검증 세트: 모델 최적화(예: 하이퍼파라미터 미세 조정, 기능/임계값 선택 등) 및 모델 선택에 사용됩니다.
- 테스트 세트: 새 데이터나 보이지 않는 데이터에 대해 선택된 모델의 일반화 및 예측 성능 평가에 사용됩니다.
따라서 1단계에서 5폴드 교차 검증을 지정하는 경우 처음 3폴드만 학습, 검증 및 테스트 세트로 사용되며 실제로는 5폴드 교차 검증 기술로 사용되지 않습니다. 원하는 대로 교차 검증을 수행하려면 중첩 교차 검증이 필요합니다. 즉, 하이퍼파라미터를 조정하는 내부 교차 검증과 발견된 하이퍼파라미터 값의 견고성을 평가하는 외부 교차 검증이 필요합니다. 이는 모델 스크리닝 플랫폼에서만 사용할 수 있으며 하이퍼파라미터 조정을 위한 튜닝 테이블을 허용하지 않습니다(이 플랫폼의 목표는 다양한 모델 유형 중에서 가장 유망한 알고리즘을 스크리닝하는 것이지 미세 조정하는 것이 아니기 때문입니다).

제가 아는 한, JMP에서는 이런 일이 (직접적으로) 가능하지 않습니다.
하지만 여전히 "기본" Boosted Tree에서 K-fold 교차 검증을 사용하거나 다른 검증 기술을 사용해 볼 수 있습니다. 위의 방법을 따르고(하지만 3개 세트로 일반 수식 검증 열을 생성) 튜닝된 모델에서 시뮬레이션을 사용해 튜닝되지 않은 모델과 비교하여 견고성과 이점을 평가합니다.

대부분의 경우 기본 하이퍼파라미터 값이 아주 잘 작동하고 하이퍼파라미터 튜닝은 최대 또는 평균 알고리즘 성능보다는 성능 변동성(RASE, R-제곱 등과 같은 성능 값은 튜닝된 알고리즘에서 "기본" 알고리즘보다 범위가 좁음)에 더 많은 도움이 되는 것을 볼 수 있습니다.
이 주제에 대한 유사한 게시물과 솔루션을 확인하여 검증 기술과 시뮬레이션 사용을 살펴볼 수 있습니다. 해결됨: Re: Boosted Tree - Tuning TABLE DESIGN - JMP 사용자 커뮤니티
중첩 교차 검증은 일반적으로 내가 추천하는 첫 번째 옵션이 아닙니다. 내부 루프의 각 폴드에 독립적으로 알고리즘을 미세 조정하고 외부 루프의 각 검증 폴드에서 성능을 계산하기 위해 많은 계산이 필요하기 때문입니다.
K-폴드 교차 검증은 대량의 데이터가 없는 경우 유용한 기술이지만, 중첩 교차 검증은 여전히 데이터를 올바르게 분할하기 위해 상당히 많은 양의 데이터가 필요합니다. 예를 들어, 내부 루프를 4개의 폴드로 분할하고 외부 루프를 5개의 폴드로 분할하면 데이터 세트에 폴드/그룹을 20개 만들어야 합니다!
마지막으로, 교차 검증은 모델의 견고성을 평가하기 위한 검증 기술이라기보다는 튜닝 기술에 가깝습니다. 이는 Cassie Kozyrkov가 이 영상에서 훌륭하게 설명했습니다. https://youtu.be/zqD0lQy_w40?si=lja79_aik0KO-jbB
이 답변이 도움이 되길 바랍니다.
@shampton82 정말 감사합니다. 덕분에 k 폴드(val) 열을 만들고 부스트 트리를 실행할 수 있었습니다!
@Victor_G 정말 감사합니다! 당신의 설명이 특히 하이퍼튜닝의 다음 단계에 매우 도움이 되었어요. xgboost를 통해 k 폴드 val 컬럼을 만들고 부스트 트리를 실행할 수 있었지만 다음 몇 단계에 도움이 될 지침과 리소스를 알려드리겠습니다. 감사합니다!