이를 보장하는 한 가지 방법 은 모델에 맞추기 위해 수행 하는 모든 작업, 심지어 "팅커 링" 을 코딩 하는 것입니다. 이렇게하면 교차 유효성 검사를 통해 프로세스를 반복적으로 실행할 때 실행간에 일관된 상태를 유지할 수 있습니다. 이를 통해 교차 검증 프로세스에서 모든 잠재적 변동 원인을 파악할 수 있습니다.
다른 중요한 것은 두 데이터 세트 모두에 대표 샘플이 있는지 확인하는 것입니다. 데이터 세트가 예측에 사용하려는 데이터 종류를 나타내지 않으면 할 수있는 일이 많지 않습니다. 모든 모델링은 "유도 (induction)"가 작동한다는 가정에 근거합니다. 우리가 관찰하지 않은 것은 우리가 관찰 한 것과 같이 행동합니다.
일반적으로 (i) 수행중인 작업을 알고 있고 (ii) 더 간단한 방법을 시도했지만 작동하지 않는 것으로 확인 된 경우와 복잡한 방법으로 문제를 해결하지 않는 한 복잡한 모델 피팅 절차를 피하십시오. 간단한 방법에 문제가 있습니다. "단순"및 "복합"은 피팅을하는 사람에게 "단순"또는 "복합"의 의미로 의미된다. 이것이 중요한 이유는 내가 "스 니프 테스트"라고 부르는 것을 결과에 적용 할 수 있기 때문입니다. 결과가 올바르게 보입니까? 이해할 수없는 절차의 결과를 "냄새"낼 수 없습니다.
N>>p p N≈p N<p
표본이 크면 모델링이 너무 "로컬"하지 않으면 주어진 관측 값 사용과 사용하지 않는 차이가 매우 작습니다. 주어진 데이터 포인트의 영향이 일반적으로 의 차수이기 때문입니다.1Nietesti=(1−hii)−1etrainietrainihiii∑ihii=ppN>>phiip=21N×pX
hii=xTi(XTX)−1xi=1Ns2x(1xi)(x2¯¯¯¯¯−x¯¯¯−x¯¯¯1)(1xi)=1+x~2iN
x¯¯¯=N−1∑ixix2¯¯¯¯¯=N−1∑ix2is2x=x2¯¯¯¯¯−x¯¯¯2x~i=xi−x¯¯¯sxxi1N100x~i=5hii=261001−26100=74100100001−26100001%10000x~=5025%
N>>p2hii=xTiEET(XTX)−1EETxiEXTXΛhii=zTiΛ−1zi=∑pj=1z2jiΛjjzi=ETxixi
ketest{k}=(Ik−H{k})−1etrain{k}H{k}=X{k}(XTX)−1XT{k}X{k}N>>p
기본적으로 BIC 또는 AIC와 같은 훈련 오류와 테스트 오류의 차이를 설명하기 위해 페널티 용어를 사용하는 것으로 줄어 듭니다. 이렇게하면 테스트 세트를 사용하는 것과 동일한 결과를 효과적으로 얻을 수 있지만 잠재적으로 유용한 정보를 버리지 않아도됩니다. BIC를 사용하면 수학적으로 다음과 같이 모형에 대한 증거를 추정 할 수 있습니다.
p(D|MiI)=p(y1y2…yN|MiI)
Mi
p(D|MiI)=p(y1|MiI)p(y2…yN|y1MiI)
=p(y1|MiI)p(y2|y1MiI)p(y3…yN|y1y2MiI)
=⋯=∏i=1Np(yi|y1…yi−1MiI)
⟹log[p(D|MiI)]=∑i=1Nlog[p(yi|y1…yi−1MiI)]
이것은 교차 검증의 형태를 제안하지만, 훈련 세트가 지속적으로 업데이트되는 경우, 칼만 필터와 유사하게 테스트 세트에서 한 번에 하나씩 관찰됩니다. 현재 학습 세트를 사용하여 테스트 세트에서 다음 관측 값을 예측하고 조건부 로그 우도를 사용하여 관측 값과의 편차를 측정 한 다음 새 관측치를 포함하도록 학습 세트를 업데이트합니다. 그러나이 절차는 사용 가능한 모든 데이터를 완전히 요약하는 동시에 모든 관측치가 "샘플이없는"사례로 테스트되도록합니다. 또한 "관찰 1"또는 "관찰 10"이라고 부르는 것이 중요하지 않기 때문에 변하지 않습니다. 결과는 동일합니다 (일부 순열의 경우 다른 순열보다 계산이 더 쉬울 수 있음). 손실 기능도 "적응"Li=log[p(yi|y1…yi−1MiI)]Lii
이런 식으로 예측 모델을 평가하면 상당히 효과적이라고 제안합니다.