• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    해결됨

학습 데이터와 원본 데이터

22.07.22 01:17 작성 조회수 106

0

전체적으로 학습 데이터와 원본 데이터를 각각 어떻게 활용해야 하는건지 헷갈려 질문드립니다(원본 데이터라는건 train_test_split을 쓰기전 데이터를 의미하고 학습데이터는 train_test_split을 써 나눈 학습 데이터를 의미합니다!)
 
1. hyperopt의 목적함수를 만들 때 교차검증을 이용하여 조기중단을 수행하려 하는데 이때 교차검증을 나누는 과정에서 원본데이터를 이용하여 검증과 학습데이터로 나눠야 할지, 아니면 train_test_split을 이용해 이미 한번 나눴던 데이터를 넣어 또 다시 검증과 학습데이터로 나눠 수행해야 하는건지 잘 감이 잡히지 않습니다 어떤 방법이 최적의 머신러닝을 만드는데 더 옮은 방법인가요?
 
2. 강의를 기반으로 캐글에 모델 제출을 한번 해보려하는데, 모델을 최종적으로 구축할 때는 원본데이터를 학습시켜야 하나요? 아니면 train_test_split으로 나눈 학습 데이터를 학습을 시켜야 하나요?

답변 1

답변을 작성해보세요.

0

안녕하십니까, 

1. hyperopt의 목적함수를 만들 때 교차검증을 이용하여 조기중단을 수행하려 하는데 이때 교차검증을 나누는 과정에서 원본데이터를 이용하여 검증과 학습데이터로 나눠야 할지, 아니면 train_test_split을 이용해 이미 한번 나눴던 데이터를 넣어 또 다시 검증과 학습데이터로 나눠 수행해야 하는건지 잘 감이 잡히지 않습니다 어떤 방법이 최적의 머신러닝을 만드는데 더 옮은 방법인가요?

=> 어떤걸로 하던 큰 차이는 없습니다.

다만 원본 데이터가 전체 데이터이고, 여기서 테스트 데이터를 따로 만들어서 테스트 데이터로만 성능 평가를 해보겠다고 한다면 train_test_split로 별도 학습과 테스트 데이터로 분리한 다음에 학습 데이터로 교차 검증후 테스트 데이터로 성능 평가를 하시면 됩니다.

굳이 성능 평가를 테스트 데이터로 안하고 교차 검증만으로 완료하겠다고 한다면 train_test_split을 적용안하고, 원본 데이터 만으로 교차 검증을 수행해도 됩니다.

테스트 데이터로 최종 성능 평가를 해보겠다, 안하겠다의 차이 정도로 생각해 주시면 됩니다.

2. 강의를 기반으로 캐글에 모델 제출을 한번 해보려하는데, 모델을 최종적으로 구축할 때는 원본데이터를 학습시켜야 하나요? 아니면 train_test_split으로 나눈 학습 데이터를 학습을 시켜야 하나요?

=> 캐글의 경우는 별도의 테스트 데이터로 최종 검증을 하므로 train_test_split()으로 나누지 않고, 교차 검증으로만 검증 후 적용하면 됩니다. 단 모델의 성능을 미리 평가해보고자 하는데 교차 검증도 좋지만 별도의 테스트 데이터로 한번 해보고자 한다면 train_test_split()으로 나누면 됩니다.

감사합니다.

예찬님의 프로필

예찬

질문자

2022.07.22

감사합니다