※ 이전글
[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
[Microsoft AzureML - 12] Train/Test 데이터 구분하기 https://limitsinx.tistory.com/125
[Microsoft AzureML - 13] Kaggle 사용법 https://limitsinx.tistory.com/126
[Microsoft AzureML - 14] Titanic Dataset 학습하기 https://limitsinx.tistory.com/127
Cross Validation
AzureML에서 Cross Validation을 할수있는 방법에 대해 포스팅해보고자 합니다.
일단, Cross Validation이란 되게 간단한 개념인데요
예를들어, [1 2 3 4 5 6] 이라는 6개의 데이터를 가지고 있다고 했을때,
[1 2 3]으로도 학습시켜보고, [3 4 5]로도 학습시켜보고, [1 4 6]으로도 학습시켜보고... 이런식으로
데이터의 전체 총량은 변하지 않지만, 선택하는 데이터의 갯수와 종류들을 바꿔가면서 여러가지로 테스트해보는것을 의미합니다.
그럼 Cross Validation을 왜 해줄까요??
바로 "Overfitting/Underfitting"을 확인하기 위함입니다.
예를들어, [1 2 3]데이터로 학습해서 검증했을때는 정확도가 아주 괜찮게 나왔지만, [4 5 6]으로 해보니 정말 안좋은 성능의 시스템이 나올수있죠??
이런경우를 방지하기 위해, 특정 데이터셋에만 과도하게 적합하도록 학습되지 않았는지..를 평가하기위해 Cross Validation을 진행해줍니다.
AzureML Studio에서 Cross Validation은 [Split Data]블록의 Random Seed 변경을 통해 진행할 수 있습니다.
이제까지는 Random Seed를 한번도 바꾸지 않고 진행했는데요
Random Seed는 정수값으로만 넣을수있으며
Random하는 알고리즘이 각 정수별로 정해져있습니다!
즉, [1 2 3 4 5 6]을
Random seed = 0 : [1 2 3 4 5 6]
= 1 : [2 5 6 1 3 4]
= 2 : [3 1 4 5 6 2]
....
이런식으로, 정해져있기에 예를들어서 AzureML Block Diagram을 동일하게 짜고, Random seed를 1로 동일하게 넣으면 제가짜나, 옆의 친구가짜나 똑같은 알고리즘으로 Random하게 섞어주기에 결과값이 똑같이 나오게됩니다 :)
이렇게 여러가지 Random Seed로 검증해보았을때 Accuracy가 큰폭으로 변화하지 않는다면 Fitting에 의한 문제점은 없는것이라고 보셔도 됩니다.
'DeepLearning Framework & Coding > Microsoft AzureML' 카테고리의 다른 글
[Microsoft AzureML - 17] 영화 추천시스템 만들기 - I (0) | 2021.07.03 |
---|---|
[Microsoft AzureML - 16] 불균일 데이터 전처리(Sampling,SMOTE) (0) | 2021.07.02 |
[Microsoft AzureML - 14] Titanic Dataset 학습하기 (0) | 2021.06.30 |
[Microsoft AzureML - 13] Kaggle 사용법 (0) | 2021.06.29 |
[Microsoft AzureML - 12] Train/Test 데이터 구분하기 (0) | 2021.06.28 |
댓글