inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[개정판] 파이썬 머신러닝 완벽 가이드

데이터 분리와 교차 검증

해결된 질문

311

uoujjj

작성한 질문수 2

0

안녕하세요?

교차 검증이 별도의 여러 세트로 구성된 학습 데이터 세트와 검증 데이터 세트에서 학습과 평가를 수행하는 것이라고

책에 표현해주셨는데 그렇다면 

1) 학습 데이터와 테스트 데이터를 분리를 먼저 하고

2) 그리고 그 분리된 학습 데이터로 부터 다시 학습 데이터 세트와 검증 데이터 세트로 분리하는 것이 교차 검증이 맞는건가요?

머신러닝 배워볼래요? python 통계

답변 4

2

권 철민

안녕하십니까, 질문을 제가 잘 이해를 못했습니다만, 아래 내용을 갈음하고자 합니다. 원하시는 답변이 아니시면 다시 질문 남겨 주시기 바랍니다.

일반적으로 테스트 데이터는 오픈하지 않고 숨겨놓습니다. 하지만 테스트 데이터가 학습이나 검증에 전혀 사용되었다고 해서 정확하게 모델의 성능을 측정하는 공정한 데이터 세트라고 장담할 수는 없습니다. 테스트 데이터가 다양한 현실의 데이터를 반영한다면 모르지만 그렇지 않다면 모델 성능이 테스트 데이터에서 납득하기 힘들 정도로 좋아지거나 반대로 나빠 질 수도 있습니다.

특히 데이터 세트가 적을 경우 이런 현상을 볼수 있습니다. 또한 학습데이터에 비해 테스트 데이터가 imbalanced 되어 있는 경우(또는 반대의 경우)에 발생할 수 있습니다.  테스트 데이터를 추출하는 작업을 정확히 해야 한다면 그냥 랜덤으로 전체 데이터에서 뽑지 않고 현실의 다양한 요소를 감안하여 뽑아야 하지만 현실적으로는 어려운 부분입니다.

데이터가 작다면 교차 검증이 오히려 더 좋은 성능 지표가 될 수 있습니다. 물론 개별 교차 검증 세트의 분산이 일정하다는 가정하에서 입니다.

또한 모델의 성능 수치를 공개할 때 교차 검증시에는 평균 0.8 이 나왔으나 테스트 데이터 세트에 테스트 시에는 0.9(또는 0.7)이 나와서 둘의 성능 수치 차이가 크다면, 테스트 데이터의 크기가 작아서(또는 학습/검증 데이터의 중요 컬럼들의 분포가 상당히 차이가 나는)  제대로 모델에 대한 성능 수치를 나타내지 못할 가능성이 큽니다.

이런 경우라면 교차 검증의 수치와 테스트 데이터의 수치를 함께 고려하면서 모델을 정교화 할 필요가 있습니다. 만일 보고를 해야한다면 역시 교차 검증 수치와 테스트 데이터의 수치를 함께 기재하고 어떠한 영향으로 이런 차이가 발생했는지 같이 설명하는 것도 좋습니다. 원래대로라면 왜 이런 차이가 발생하는지 테스트 데이터를 더 분석해서 차이를 찾아야 합니다만 일반적으로 작은 데이터 세트에 대해서는 흔하게 발생하는 현상중에 하나 입니다.

교차 검증과 테스트 데이터 세트에 대해 반드시 따라야할 규칙은 없습니다. 보다 객관적인 모델 검증을 위해서 교차 검증 후 별도의 테스트 데이터에 성능 지표를 확인 받는 것이 일반적으로 타당하기 때문에 이를 따르는 것입니다. 환경이 그렇지 못하다면 거기에 따른 보충 설명이나 문제점을 공개하여 모델 성능을 참조하도록 하는 것이 바람직합니다.

감사합니다.

1

권 철민

안녕하십니까,

넵. 맞습니다.

감사합니다.

0

uoujjj

자세히 설명해주셔서 감사합니다 :)

0

uoujjj

그러면 총 데이터 셋 개수가 적은 경우 교차 검증을 하고 모델 train 및 predict를 했는데

overfitting이 발생하였습니다. 이런 경우에는 어떻게 해야할까요? 

안녕하세요 열심히 수강중인 학생입니다

0

63

2

정수 인덱싱

0

68

2

넘파이 오류

0

85

2

11강 numpy의 axis 축 질문 드립니다.

0

85

2

Kaggle 에서 Santander customer satisfaction data 를 다운로드 되지가 않습니다.

0

79

2

Feature importances 를 보여주는 barplot 이 그래프로 안보여져요.

0

70

2

타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.

0

75

2

타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.

0

64

2

5강 강의 오류가 있어요.

0

84

1

실무에서 LTV 관련 모델 선택 질문입니다!

0

72

2

14강 강의 듣는중에 궁금한게 있어서 질문합니다~

0

69

3

파이썬 다운그레이 후 사이킷런 재설치

0

117

2

좋은 강의 감사합니다.

0

72

2

scoring 함수 음수값

0

67

2

6번 강의에 사이킷런, 파이썬, 아나콘다 각각 버전 일치 안 시키고 진행해도 강의 따라가 지나요?

0

100

2

분류 평가 정확도 예측

0

76

2

안녕하세요. 강의 들으면서 업무에 적용하고 싶은 수강생입니다.

0

99

1

카카오톡 채널 있나요

0

107

1

혹시 강의에서 사용하시는 ppt 받을 수 있는건가요

0

189

2

pca 스케일링 관련하여 질문드립니다.

0

100

2

주피터 대신 구글 코랩

0

172

2

강의에서 사용하는 pdf or ppt자료는 따로 없는 건가요?

0

148

2

실루엣 스코어..

0

86

2

float64 null 값 처리 방법

0

103

2