해결된 질문
작성
·
258
0
KFold 교차 검증을 수행하는 코드에서 반복을 5번 하면 학습과 예측도 5번 하잖아요? 그때 이전 반복문의 결과가 이후 반복문의 결과에 영향을 주나요?
1. 그러니까 만약에 영향을 안 준다면 마지막 학습 1번만 하는 것과 다름이 없는데 왜 여러 번 학습을 수행시키는지 궁금합니다.
2. 만약에 영향을 준다면 0.7542 -> 0.78.9 -> 0.7865 -> 0.7697 -> 0.8202 가 우연이 숫자가 증가하는 양상을 띄는 것이아니라 정말로 성능이 좋아지는 것이 맞나요? 만약에 그렇다면 최종 정확도가 중요한 것인데 왜 평균 정확도를 구하나요?
3. 영향을 준다면 2.6 사이킷런에서 수행하는 타이타닉 생존자 예측 코드에서 DecisionTreeClassifier, RandomForestClassifier, LogisticRegression으로 학습/예측/평가를 해본 뒤, KFold 교차 검증에서 앞서 사용한 df_clf를 함수에 인자로 넘겨 재사용하는데, 이것이 문제 없는 것인지 궁금합니다.
답변 3
1
아, 아닙니다. 모델이라 함은 하이퍼파라미터와 함께 데이터로 학습된 상태가 포함된 것이 맞습니다.
머신러닝 모델은 일반적으로 학습 데이터에 많이 좌우되기 때문에 여러 유형의 학습 데이터를 가지고 검증해보는 것입니다. 어떤 학습 데이터에서는 좋고, 어떤 학습 데이터에서는 나쁘다면 오버피팅 여지가 높기에 전반적으로 평균을 해서 모델 성능을 검증하는 것입니다.
1
안녕하십니까,
이전 반복문의 결과가 이후 반복문의 결과에 영향을 주지 않습니다.
1. 교차검증을 하는 이유는 여러번 학습 데이터 세트를 변경해 가면서 테스트 하는데 의미가 있습니다. 학습 데이터를 조금씩 바꿔 가면서 검증을 하는 것입니다. 예를 들어 고등학교 수학 능력을 평가한다고 할때,
집합 10문제, 미분적분 10문제, 통계 10문제가 있다고 한다면 어떤 모델(여기서는 학생)은 통계에 아주 강하지만, 미분적분에는 약한 모델이 있을 수 있고, 반대로 다른 모델은 통계에는 약하지만 미분적분에는 강한 모델이 있을 수 있습니다. 하지만 수학점수는 30개 문항을 기준으로 만점 처리를 하므로 문제를 바꿔가면서 학습하고, 또 검증하는 문제도 바꾸가면서 평가하는 것입니다.
전반적으로 좋은 모델이란 학습 문제를 바꿔도, 또한 평가 문제가 바뀌어도 좋은 점수를 얻는 모델이므로 이를 위해 평균점수를 기반으로 성능을 판단하는 것입니다.
감사합니다.
0
아하 알겠습니다. 그러면 저는 머신러닝에서 모델이라 함은 하이퍼파라미터와 함께 데이터로 학습된 상태가 포함된 것인 줄 알았는데, 그게 아닌거죠? 그렇기 때문에 정확도의 평균을 내는 것인거죠??