지금까지는 그냥 데이터를 train 80, test 20 이렇게 한 번 딱 잘라서 학습하고 test로 점수 보고 있었어요. 근데 자료들 보면 다들 cross validation 하라고 하더라고요. 이미 나눠서 검증하고 있는데 왜 또 이걸 해야 하는지 잘 모르겠습니다.
실제로 좀 이상한 걸 겪긴 했어요. 코드에서 나누는 부분 random_state 값을 바꿔봤더니 점수가 이렇게 왔다 갔다 하더라고요.
random_state=1 => 0.86
random_state=7 => 0.79
random_state=42 => 0.83
같은 데이터 같은 모델인데 그냥 어떻게 잘리냐에 따라 점수가 이만큼 차이가 나니까 그럼 대체 이 모델 실력이 진짜 몇 점이라는 건지 헷갈리더라고요. 어쩌다 test에 쉬운 애들만 몰리면 점수가 뻥튀기될 수도 있는 거잖아요.
그래서 이걸 k-fold 같은 걸로 여러 번 나눠서 평균 내면 해결된다는 것 같은데, 그러면 데이터를 다섯 번 열 번 잘라서 매번 학습을 새로 시키는 거예요? 그럼 시간도 그만큼 몇 배로 오래 걸리는 거 아닌가요? 실무에서는 그걸 감수하고 다들 돌리는 건지, 아니면 데이터 많을 때는 그냥 한 번 나누고 말기도 하는 건지 현실적인 얘기가 궁금합니다.