안녕하세요, 통계 뉴비입니다.
하찮은 질문이지만 답변 주시면 감사하겠습니다.
질문은 아래와 같습니다!
Test 데이터에 대한 Prediction Perfromance 등에 대한 Interval을 따로 명시하지 않는건가요?
grid search를 통해 Best 한 튜닝을 찾더라도 같은 튜닝 하의 앙상블 모형은 Performance의 값이 크게 변동 할 수 있는거 아닌가요? (시드를 고정하지 않음)
예를들면 모형1의 mse가 90~200 사이의 변동성을 갖는 모형과
모형2의 mse가 110~130 사이의 변동성을 갖는 모형이면
제 기준에서는 모형2가 더 Robust한 모형이고 practical 하게 apply하기에 더 적합해 보이는데 모통 모형1의 mse가 제일 낮아서 모형1을 선택하는 경우가 많더라구요 (kaggle도 그렇고..)
현자님들께서 답을 주시면 감사하겠습니다.
모형을 선택하는건 test데이터를 넣어보기전에 cv 단계에서 이미 고려한거니까요. 결과적으로 그래서 너가 잘맞췄냐 못맞춰냐만 test단계에서는 중요한거죠(캐글처럼 이미 평가를 mse로 하겠다고 했으니). cv단계에서 모형1과 모형2중에 뭐가 더 좋은 모형인데? 라고했을때는 1차 2차 3차 4차 모먼트 다 비교해보는게 가능하고 의미있을수 있습니다.
다만 이후 test에 넣어볼때는 제시해준 기준만 중요하게 되는거죠. 이건 모델을 어디에 사용하냐에 따라서 결정되는 사안이라 정해준 법칙에 따르는게 맞다고 설명드릴수밖에 없겠네요
감사합니다! 결국 어떤 Criteria를 잡는지에 따라 다르다는 거군요..! 감사합니다
못하니까요. 결국 모델 출력에 대한 uncertainty를 구해야 되는건데, 어렵죠. 어떻게든 계산해내는 방법은 많긴 해요. 근사때려서라도 exact하게 계산해보거나, 시드 바꾸면서 bootstrap 해보거나, 아니면 딥러닝같이 특수한 케이스에서는 dropout했을때 posterior를 근사하는 성질이 있으니 그걸 이용해도 돼죠. 그렇게 uncertainty 계산했으면 성능 + k* |uncertainty|를 지표로 deploy해서 uncertainty를 제거해가며 동적 제어하면 됩니다. deploy해보면 불확실성이 줄어들테니까요.
테스트셋 자체로만 얼마나 맞추는지 본다는 건 결국 1차 모먼트만 보겠다는 거임. 임의의 테스트셋이 몇 %의 확률로 올지 모르니, 결국 uncertainty까지 같이 봐줘야 하는데, 윗 형 말처럼 아이디어는 많은데 어려움. 통계 모델들처럼 2차 모먼트까지 고려해서 신뢰구간 신용구간 딱딱 구하면 편하겠지만 그게 어려우니 경험적으로 조절해야지 - dc App
모형1의 mse가 제일 낮아서 모형1을 선택하는 경우가 많더라구요 (kaggle도 그렇고..) → 캐글은 mse 같은 성능지표 좋게 나오는 데만 집중하니까 그런거 성자가 의문을 가진 것처럼, 성능지표 분산이 적은편이, 그렇지 않은 것보다 나음 성능지표가 오락가락하면 모델 자체가 수리/논리적으로 허점이 있다는 얘기일 수 있음 성능지표가 오락가락하진 않는데, 좀 더 안좋은 편향이 있는거면, 그 편향만 해결해줄 수 있는 미처 고려못한 점이 있어서 그럴 수 있기에, 그나마 개선여지가 있어서 더 낫다는 것
어떤 모형을 선택하고 싶냐에 따라 다른거 아닐까 모형의 mse의 기대값이 최소가 되게 하는 모형은 모형1이 맞으니까