교차 유효성 검사 - 유효성 검사 열 방법교차 유효성 검사를 위해 유효성 검사 열 방법을 사용할 때 데이터 세트를 훈련, 유효성 검사 및 테스트 세트로 분할합니다. 이 분할 비율은 사용자가 지정합니다. 분할 비율(예: 60:20:20 / 70:15:15 / 50:25:25 / 80:10:10)을 결정하기 위한 지침/참조가 있습니까? 총 관측 수 -N 에 따라 선택됩니까?
데이터 혼합 및 정리예측 모델링 및 기계 학습Re: 교차 유효성 검사 - 유효성 검사 열 방법귀하의 원래 질문에는 아니오, 생략할 데이터의 양에 대한 특정 규칙이 없습니다. JMP Education 분석 과정에서는 최소한 20%를 유지하면서 편안하게 데이터를 유지할 것을 권장합니다. 교육 세트가 너무 작아서 그렇게 많은 행을 유지할 수 없다고 생각되면 k-겹 교차 검증을 고려하십시오. 유효성 검사를 위해 얼마나 많은 행을 희생하시겠습니까? k = n / 그만큼 많은 행을 사용하십시오. 해당 공식을 사용하여 k < 5인 경우 일대일 교차 검증을 고려하십시오.
Re: 교차 유효성 검사 - 유효성 검사 열 방법천만에요 @sreekumarp .
이러한 답변 중 하나 또는 여러 개를 솔루션으로 생각한다면 주저하지 말고 솔루션으로 표시하여 JMP 커뮤니티 방문자가 원하는 답변을 더 쉽게 찾을 수 있도록 하십시오.
질문이 더 있거나 조언이 필요한 구체적인 사례가 있는 경우 주저하지 말고 이 주제에 대해 답변하거나 새로운 주제를 만드십시오.
Re: 교차 유효성 검사 - 유효성 검사 열 방법교차 검증 열에 대한 귀하의 의견에 감사드립니다.
스리쿠마르 푸나필리
Re: 교차 유효성 검사 - 유효성 검사 열 방법기계 학습에서 데이터 세트 분할에 대한 자세한 정보를 제공해 주셔서 감사합니다. 이것이 내 연구에 도움이 될 것이라고 확신합니다.
스리쿠마르 푸나필리
Re: 교차 유효성 검사 - 유효성 검사 열 방법안녕 @Victor_G ,
네, 뭔가 오해가 있는 것 같아요. 아마도 테스트 데이터 세트가 아닌 홀드아웃 데이터 세트가 있다고 말해야 할 것 같습니다. 홀드아웃 데이터 세트는 주어진 알고리즘(테스트 세트)에서 모델의 학습, 검증 또는 선택에 사용된 적이 없는 데이터입니다. 이 홀드 아웃 세트를 사용하여 서로 다른 알고리즘을 비교하여 어떤 알고리즘이 가장 잘 수행되는지 확인합니다. JMP의 모델 비교 플랫폼은 홀드아웃 세트를 사용하여 다양한 알고리즘을 서로 비교하는 데 매우 유용합니다. 이를 통해 다양한 알고리즘의 편향되지 않은 누출 비교가 가능합니다. 따라서 홀드아웃 데이터 세트가 이 "순수한" 데이터 세트에서 가장 잘 수행되는 다른 알고리즘을 확인하는 데 사용된다는 점에서 일종의 "테스트" 데이터 세트가 됩니다.
이것이 JMP에서 서로 다른 알고리즘을 서로 비교하는 유일한 방법입니다. 예를 들어 이것이 JMP가 신경망 알고리즘을 XGBoost 알고리즘과 비교할 수 있는 유일한 방법이라는 뜻입니다. 나는 플랫폼 내에서 다른 모델을 비교하기 위해 홀드아웃 데이터 세트를 사용하는 것을 절대 사용하거나 권장하지 않습니다. 테스트 데이터 세트의 목적인 홀드아웃 세트를 사용하여 부트스트랩 포리스트 플랫폼 내에서 20개의 조정된 모델을 서로 비교하지 않을 것입니다.
오해/혼동이 있었다면 죄송합니다. 테스트 세트와의 혼동을 피하기 위해 지금부터는 홀드아웃 세트라고 부르도록 하겠습니다.
토론해 주셔서 감사합니다!,
DS
Re: 교차 유효성 검사 - 유효성 검사 열 방법층화 샘플링의 좋은 점 @SDF1 !
죄송합니다. 동일한 이름을 사용하지 않거나 오해가 있습니다.
테스트 세트에 여러 모델을 가져와 비교하고 하나를 선택하는 경우 사용되는 플랫폼이나 모델에 관계없이 문제가 되며 이 세트의 목적이 아닙니다. 모델 비교는 유효성 검사 세트에서 수행되어야 합니다(정보 누출이나 편향 없이 명확하고 "순수한" 테스트 세트를 유지하기 위해). 따라서 이 주제에 대한 몇 가지 리소스가 있는 이전 답변입니다.
세트 간의 차이점을 강조하는 JMP 도움말도 참조하십시오. "테스트 세트는 모델의 예측 능력을 확인합니다. ~ 후에 모델을 선택했습니다." : https://www.jmp.com/support/help/en/17.1/index.shtml#page/jmp/overview-of-the-make-validation-column-platform.shtml#ww269465
이것은 또한 동일한 검증 세트(또는 동일한 방법)에서 다른 모델을 적절하게 평가하기 위해 다른 세트를 잘 정의하고 세트 또는 방법을 수정하는 것이 중요한 이유이기도 합니다.
Re: 교차 유효성 검사 - 유효성 검사 열 방법안녕 @Victor_G ,
명확하지 않은 경우 죄송합니다. 실제로 동일한 내용을 참조하고 있습니다. 이전에 모델을 언급했을 때 동일한 테스트/검증 설정을 사용하지만 JMP의 여러 플랫폼에서 모델을 생성하는 것에 대해 이야기하고 있습니다. 나는 어떤 하나의 플랫폼을 염두에 두고 모델을 구축하지 않지만, 다양한 플랫폼(예: NN, BT, Bootstrap Forest, SVM, KNN 및 XGBoost)을 사용하여 모델을 생성 및 조정하고 훈련 및 검증 세트를 사용한 교차 검증을 수행합니다. 그런 다음 다양한 모델을 생성한 후 훈련 및 검증 단계에서 어떤 모델도 본 적이 없는 데이터 세트인 홀드아웃(테스트) 데이터 세트에 대한 예측 능력을 비교합니다. NN이 가장 잘 작동하는 경우도 있고 XGBoost 또는 다른 플랫폼인 경우도 있습니다.
마지막으로 @sreekumarp 이전 게시물에서 언급하지 않은 한 가지는 출력 열(예측하려는 열)을 사용하여 교차 검증 열을 계층화하는 데 정말 도움이 된다는 것입니다. 이것은 훈련, 검증 및 테스트 데이터 세트에 대해 유사한 분포 구조를 유지합니다. 특히 불균형이 심한 데이터 세트에서는 이 작업을 수행할 수 없는 경우도 있지만 가능하면 적극 권장합니다. 그렇지 않은 경우 데이터는 각 유형의 데이터 세트에 무작위로 배치되며 이로 인해 유효성 검사 열이 잘못 분할되어 종종 잘못된 모델로 이어질 수 있습니다.
DS
Re: 교차 유효성 검사 - 유효성 검사 열 방법안녕 @SDF1 ,
귀하가 제공한 훌륭한 추가 사항에 대한 사소한 수정: 유효성 검사 세트는 테스트 세트가 아니라 모델 비교 및 선택에 사용되는 세트입니다(그러나 때때로 테스트 및 유효성 검사 이름이 번갈아 사용되거나 혼란스럽게 사용됨).
이 두 세트는 목적이 매우 다릅니다.
- 테스트 세트는 사용되지 않는 데이터의 보류 부분입니다. ~ 전에 모델 일반화 및 예측 성능의 편향되지 않은 추정을 제공하기 위해 모델을 선택했습니다.
- 검증 세트는 최적의 후보 모델을 선택하기 위해 모델 미세 조정 및 모델 비교에 사용되는 데이터의 일부입니다.
여기에 설명이 제공됩니다. 기계 학습 - 테스트 데이터 세트를 사용하여 모델을 선택할 수 있습니까? - 데이터 사이언스 스택 교환
이 사용상의 차이점에 대한 두 가지 설명:
- 실용적인 것: 데이터 과학 대회에서는 테스트 데이터 세트에 액세스할 수 없으므로 최고의 성능을 발휘하는 알고리즘을 생성하고 선택하려면 훈련 및 검증 세트에서 데이터를 분할하고 좋은 성능을 "기대"해야 합니다( 보이지 않는 테스트 세트에 대한 일반화).
- 이론적인 것: 테스트 세트를 사용하여 모델을 비교하는 경우 테스트 세트에서 가장 성능이 좋은 알고리즘을 선택하여(그리고 나서, 테스트 데이터의 성능을 기반으로 미세 조정을 계속하거나 다른 모델을 시도할 수도 있습니다...). 따라서 테스트 세트는 더 이상 편견이 없습니다. 알고리즘의 선택(및 선택 후 수행되는 다른 작업)이 여기에서 이루어지기 때문입니다.
테스트 세트는 종종 모델 생성/개발과 프로덕션 또는 게시에 배포 사이의 마지막 단계이므로 최종 평가는 가능한 한 공정하고 편견이 없어야 합니다.
세트에 대한 일부 리소스: 학습, 테스트 및 검증 세트(mlu-explain.github.io)
MFML 071 - 테스트와 검증의 차이점은 무엇입니까? - 유튜브
세트 이름 지정 및 사용에 있어 혼동을 피할 수 있기를 바랍니다.
Re: 교차 유효성 검사 - 유효성 검사 열 방법안녕 @sreekumarp ,
무엇에 더해 @Victor_G 또한 테스트 데이터 세트를 분리하고 새 데이터 테이블을 만드는 것이 좋습니다. 이렇게 하면 모델을 훈련하고 검증할 때 테스트 홀드아웃 데이터 테이블에서 모델을 비교하여 어떤 모델이 가장 잘 수행되는지 확인할 수 있습니다. 이렇게 하면 테스트 데이터 세트가 교육 또는 검증 세트에서 실수로 사용될 가능성이 줄어듭니다.
시뮬레이션된 데이터를 사용하여 모델을 교육한 다음 실제 데이터에서 모델을 테스트할 수 있는 다른 방법도 있습니다. 원본 데이터 세트가 작고 입력의 상관 관계 구조를 유지해야 할 때 때때로 이 접근 방식을 사용합니다.
행운을 빌어요!,
DS
Re: 교차 유효성 검사 - 유효성 검사 열 방법안녕 @sreekumarp ,
흥미로운 질문입니다. 데이터 세트, 고려할 모델 유형, 분석가(또는 분석을 수행하는 사람)의 관행/습관에 따라 다르기 때문에 귀하의 질문에 대한 확실한 답변을 드릴 수 없습니다.
첫째, 각 세트 사이의 용도와 요구 사항이 무엇인지 아는 것이 중요합니다.
- 트레이닝 세트 : 사용 모델의 실제 훈련,
- 검증 세트 : 모델 최적화(초매개변수 미세 조정, 기능/임계값 선택 등) 및 모델 선택에 사용,
- 테스트 세트 : 신규/미확인 데이터에 대해 선택한 모델의 일반화 및 예측 성능 평가에 사용됩니다.
목표와 데이터 세트의 크기에 따라 데이터를 분할하는 몇 가지 선택/방법이 있습니다.
- 학습/검증/테스트 세트 : 모델 성능을 훈련, 최적화 및 평가하기 위한 고정 세트. 더 큰 데이터 세트에 권장됩니다.
- K-폴드 교차 검증 : 데이터셋을 K겹으로 나눕니다. 모델은 K회 훈련되고 각 접기는 훈련에 K-1회, 검증에 1회 사용됩니다. 모든 폴드에서 성능이 동일해야 하므로 모델 견고성을 평가할 수 있습니다.
- Leave-One-Out 교차 검증 : K-겹 교차 검증의 극단적인 경우, 여기서 K = N(관측치 수). 작은 데이터 세트가 있고 모델이 견고한지 평가하려는 경우에 사용됩니다.
- Autovalidation/Self Validating Ensemble Model: 일부 관찰을 다른 집합으로 분리하는 대신 각 관찰을 훈련 및 검증을 위한 가중치와 연결합니다(훈련에서 더 큰 가중치는 검증에서 더 낮은 가중치를 유발하므로 이 관찰이 주로 훈련에 사용됨을 의미합니다. 유효성 검사를 위해 적게) 가중치를 변경하여 이 절차를 반복합니다. 매우 작은 데이터 세트 및/또는 서로 다른 세트 간에 일부 관찰을 독립적으로 분할할 수 없는 데이터 세트에 사용됩니다. 예를 들어 실험 설계에서 수행할 실험 세트는 모델을 기반으로 할 수 있으며, 그렇다면 모델을 부정적인 방식으로 편향시키기 때문에 훈련과 검증 사이에 일부 실행을 독립적으로 분할할 수 없습니다. 매개변수 추정에 필요한 실행을 사용할 수 없으므로 모델의 성능이 크게 저하됩니다.
JMP는 이러한 모든 접근 방식을 지원합니다. Make Validation Column 플랫폼(jmp.com) 출시
일반적으로 70/20/10 비율이 자주 사용됩니다."라는 논문을 읽을 수 있습니다. 데이터 분할을 위한 최적 비율 "여기에 자세한 내용이 있습니다.일반적으로 모델의 매개변수 수가 많을수록 모델의 각 매개변수를 정확하게 추정하기 위해 더 많은 데이터가 필요하므로 훈련 데이터 세트도 커집니다. 따라서 모델의 복잡성/유형도 고려해야 합니다. 교육/검증/테스트 세트를 만들 때.
보다 정확한 사용 사례가 있는 경우 지침을 제공하는 데 더 유용하고 덜 일반적일 수 있습니까?
또한 모델 교육, 검증 및 테스트에 대해 자세히 알아보려면 Cassie Kozyrkov의 "Making Friends with Machine Learning" 재생 목록을 적극 권장합니다. 기계 학습과 친구 사귀기 - YouTube
이 첫 번째 답변이 도움이 되길 바라며,
제목: 교차 검증 - 검증 열 방식감사해요.
JMP Pro에서 일반 회귀 분석을 사용하여 K-겹 교차 검증(CV)과 LOO(Leave-One-Out) 검증을 수행할 때 명확히 해야 할 두 가지 사항이 있습니다.
두 방법 모두 PLSR(부분 최소 제곱 회귀) 부분에서 직접 사용할 수 있지만, 단순 회귀 분석에 교차 검증(CV) 및/또는 이진 탐색(LOO)을 적용할 경우 어떻게 해야 하고 지표를 어떻게 시각화해야 하는지에 대한 명확성이 부족합니다. 예를 들어, 저는 스펙트럼을 분석하고 있는데, PCR과 PLSR은 이러한 화학 계량학적 과정에서 일상적으로 사용됩니다.

좀 이상한 경험을 했습니다. 4겹 교차 검증 열을 생성하고(위 예시, 72개 관측치에 걸쳐 4겹 교차 검증) PCR(수치형 반응 변수와 주성분 분석을 예측 변수로 사용)을 실행한 후 다음과 같은 오류 응답을 받았습니다.
그러니까, 실제로 이력서 검사는 실시되지 않는다는 거죠?
두 번째 질문: PCR에 대한 LOO 검증(열?)을 어떻게 구축해야 할까요?
전반적으로, 일반적인 회귀 분석에서 교차 검증과 leave-one-out 검증을 적절하게 수행하고 적합도 지표를 얻으려면 어떻게 해야 하는지 알려주시면 감사하겠습니다. 이 부분이 정말 중요하고 아직 저에게는 명확하지 않습니다.
동료 여러분, 정말 감사합니다!
제목: 교차 검증 - 검증 열 방식안녕하세요 @Nazarkovsky 님 ,
이 오래된 게시글에 답글을 다는 것보다 새 게시글을 작성하는 것이 더 쉬웠을 것 같습니다. 그렇게 하면 더 많은 사람들이 볼 수 있고 다른 JMP 사용자들도 질문에 대한 토론에 참여할 수 있었을 것입니다.
네, JMP 모델링 플랫폼에서 고정된 K-Folds 교차 검증 열을 사용할 때 오류가 발생하는 경우가 있습니다. JMP는 일반적으로 검증 열을 2단계(훈련 및 검증 또는 테스트) 또는 3단계(훈련, 검증 및 테스트)로 인식하기 때문입니다. 발생한 오류 메시지에서는 교차 검증이 수행되지 않았고, 모든 데이터에 선형 모델이 적용되었습니다.
매우 간단한 선형 모델을 사용하고 있으므로, 모델 스크리닝 플랫폼(다양한 모델의 결과를 비교하려는 경우 PLS도 포함)을 사용해 보는 것을 고려해 볼 수 있습니다. 플랫폼에서 X 변수, 반응 변수 Y, 4겹 교차 검증 열(또는 플랫폼에서 직접 교차 검증 수행), 그리고 적합시키려는 모델 유형(선형 회귀 모델 옵션 + 모델링 옵션)을 지정하면 됩니다.

또는 플랫폼에서 제공하는 K-겹 교차 검증 옵션을 직접 사용하면 다음과 같은 결과를 얻을 수 있습니다.

Leave-One-Out 교차 검증을 실행하려면 K=n(n은 테이블의 실행 횟수)으로 지정하기만 하면 됩니다. 개별 폴드의 결과에 접근하려면, 제가 제공한 해결 방법을 사용하시는 모델링 플랫폼에 맞게 수정하시면 됩니다. (K-Fold CV에서 폴드 외부 메트릭에 접근하기 )
마지막으로, 데이터 유출로 이어질 수 있는 모델링 워크플로의 주요 문제점 하나를 발견했습니다. 바로 주성분 분석(PCA)에도 교차 검증 또는 분할/검증 전략을 적용해야 한다는 점입니다. 만약 그렇게 하지 않으면, PCA는 전체 데이터셋을 사용하게 되고, 데이터셋 전체의 요인 간 상관관계를 학습하게 됩니다. 그 결과, 이후에 적합시키고 교차 검증을 통해 평가하는 선형 모델은 전체 데이터셋의 정보만을 활용하게 되고, 4개의 폴드 중 3개의 정보만을 활용하게 됩니다. JMP는 아직 PCA에 대한 검증 역할을 구현하지 않았기 때문에, 데이터 유출과 모델링 워크플로에서 발생할 수 있는 오류를 방지하기 위해 다음과 같은 위시리스트를 추가했습니다. 주성분 분석 플랫폼에 검증 역할 옵션 추가. 요약하자면, 다음과 같이 해야 합니다.
- 검증 전략(교차 검증, LOO 또는 표준 학습/검증 또는 학습/검증/테스트 분할)을 정의하고 적용합니다.
- 훈련 세트에 대해서만 데이터를 전처리하거나 (사용하는 폴드 수에 따라 여러 번 전처리할 수도 있습니다)
- 훈련 세트(또는 해당 훈련 폴드)에서 전처리된 데이터를 사용하여 동일한 검증 전략으로 모델을 적합시킵니다.
이 답변이 도움이 되길 바랍니다.
제목: 교차 검증 - 검증 열 방식어쨌든 JMP의 k-겹 교차 검증 기능은 여전히 미흡합니다. 개발자들이 이 부분을 왜 신경 쓰지 않는지 궁금합니다. 이 검증 방법은 특히 데이터 양이 적을 때 모델의 초기 평가를 위한 핵심 도구이기 때문입니다. 게다가 k-겹 교차 검증 열을 구성하는 옵션에서 3겹 교차 검증을 구성하는 것이 불가능합니다. 최소값이 4겹이어야 합니다.
저는 JMP의 교차 검증(CV) 지표 보고서도 마음에 들지 않습니다. 모든 실행 결과를 평균값으로 표시하고 일반화 회귀 또는 PLSR에서 제공하는 예측값과 비교할 수 있는 '예측값' 열을 최종적으로 생성하는 옵션이나 버튼이 없기 때문입니다.
PCA 검증에 관해서는, 화학 데이터의 다변량 분석(스펙트럼 등)을 위한 전통적인 소프트웨어인 Unscrambler에서 이 옵션을 찾을 수 있습니다. 네, 검증은 미리 설정된 주성분 개수와 설명된 분산을 기준으로 이루어집니다. 누출 테스트에 Unscrambler를 사용했죠.
이 커뮤니티에는 스펙트럼 분석에 관한 JMP 게시물이 여러 개 있지만, CV와 PCR에 대한 포괄적인 논의는 아직 부족합니다.
하지만 화학계량학에서는 SVR(서포트 벡터 회귀), PLSR, PCR이 항상 적용되며 그 지표들을 비교한다.
LOO님, 감사합니다. 정말 제대로 작동하네요.
제목: 교차 검증 - 검증 열 방식어쨌든 JMP의 k-겹 교차 검증 기능은 여전히 미흡합니다. 개발자들이 이 문제를 신경 쓰지 않는 이유가 궁금합니다. 이 검증 방법은 특히 데이터 양이 적을 때 모델을 예비 평가하는 데 매우 유용한 도구이기 때문입니다. 게다가 K-겹 교차 검증 열을 제대로 구성하는 옵션에서 3겹 교차 검증은 불가능합니다. 최소값이 4겹이어야 합니다.
저는 JMP의 교차 검증(CV) 지표 보고서도 마음에 들지 않습니다. 모든 실행 결과를 평균값으로 표시하고 일반화 회귀 또는 PLSR에서 제공하는 예측값과 비교할 수 있는 '예측값' 열을 최종적으로 생성하는 옵션이나 버튼이 없기 때문입니다.
PCA 검증에 관해서는, 화학 데이터의 다변량 분석(스펙트럼 등)을 위한 전통적인 소프트웨어인 Unscrambler에서 이 옵션을 찾아볼 수 있습니다. 네, 검증은 설정된 주성분 개수와 설명된 분산을 기준으로 이루어집니다. 누출 테스트에는 Unscrambler를 사용합니다.
이 커뮤니티에는 스펙트럼 분석에 관한 JMP 게시물이 여러 개 있지만, CV와 PCR에 대한 포괄적인 논의는 아직 부족합니다.
하지만 화학계량학에서는 SVR(서포트 벡터 회귀), PLSR, PCR이 항상 적용되며 그 지표들을 비교한다.
LOO님, 감사합니다. 정말 제대로 작동하네요.