본문 바로가기
DeepLearning Framework & Coding/Microsoft AzureML

[Microsoft AzureML - 12] Train/Test 데이터 구분하기

by 노마드공학자 2021. 6. 28.

※ 이전글

[Microsoft AzureML - 0] Intro https://limitsinx.tistory.com/113

[Microsoft AzureML - 1] 개발 환경 세팅 https://limitsinx.tistory.com/114

[Microsoft AzureML - 2] 학습할 데이터 불러오기 https://limitsinx.tistory.com/115

[Microsoft AzureML - 3] 데이터 전처리(Data pre-processing) - I https://limitsinx.tistory.com/116

[Microsoft AzureML - 4] 데이터 전처리(Data pre-processing) - II https://limitsinx.tistory.com/117

[Microsoft AzureML - 5] 학습모델 구현 및 검증 https://limitsinx.tistory.com/118

[Microsoft AzureML - 6] 여러 학습모델 동시에 성능비교 https://limitsinx.tistory.com/119

[Microsoft AzureML - 7] Binary Classification with Kaggle https://limitsinx.tistory.com/120

[Microsoft AzureML - 8] 모델 선정과 Hyper Parameter 자동튜닝 https://limitsinx.tistory.com/121

[Microsoft AzureML - 9] 학습데이터 CSV로 Export하기 https://limitsinx.tistory.com/122

[Microsoft AzureML - 10] 데이터 Feature Engineering https://limitsinx.tistory.com/123

[Microsoft AzureML - 11] 이미지 데이터학습 with Neural Network https://limitsinx.tistory.com/124

 


이제까지는, Training Data를 Split해서 70%는 학습시키고 나머지 30%로 검증하여 잘맞는 정도를 추론해보았습니다.

 

하지만 실무에서 AzureML을 사용하기위해서는.. 오히려, 학습데이터 파일 따로 검증 데이터 파일 따로 이렇게 있는경우가 많죠? 비율이 아니라요

 

이런경우에 학습시키는 방법에 대해 말씀드리고자 합니다.

 

기존에는 이렇게 한개 데이터를 Split 했었습니다.

 

불러오는 파일명도 Train Data죠

 

하지만 이 Test/Train Dataset을 구분하여 모델링하는 방법은 하기와 같습니다.

 

 

이 그림을 잘 이해하시는게 중요합니다.

Tune Model HyperParameters블록을 포함하여 그 위의 블록들까지가 "학습 모델" 입니다.

 

그밑의 Score Model 부터는, 학습한 모델을 사용하여 다른데이터를 추정하는것이죠

즉, 기조노에는 70%의 데이터로 학습하고, 30%의 나머지데이터를 Score Model 오른쪽노드에 연결해주었다면

 

이번에는, Test Dataset을 따로불러와서 Score Model의 오른쪽노드에 연결해주는것이죠

이렇게 진행해주시면 Train, Test Dataset이 달라도 학습 및 검증을 진행할 수 있습니다.

 

Train Data 검증결과
Test dataset 검증결과

 

위의 이미지들은 Train Data의 30%로 검증한 결과와 다른 Test Dataset으로 검증한 결과입니다.

 

학습에 검증한 결과가 반드시 다른데이터셋으로 검증했을때도 동일하게 나오진 않는다는것을 확인할 수 있습니다.

 

이번 MNIST 학습에서는 성능이 더 좋게나왔지만(0.08%), 언제든 성능이 더 낮게나올수도 높게나올수도 있습니다.

 

 

댓글