묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
train_test_split()와 StratifiedKFold() 차이
예제에서는 DecisionTreeClassifier 알고리즘의 정확도를 검증하기 위해train_test_split()와 StratifiedKFold()를 사용했습니다.둘다 랜덤으로 학습데이터와 테스트데이터를 선택하는데요,영상 2:50 쯤의 그림으로 이해하기로는 학습 세트 4/5선택을 5번 하는 것으로 보이는데요(StratifiedKFold의 경우 랜덤으로 선택)결국 train_test_split(test_size=0.2)를 다섯번 시행한 후 평균을 낸것과 동일한 것 아닌가요?두 검증 방법의 본질적인 차이는 무엇인가요? *데이터가 충분하고 정규분포라고 할 때 결국은 동일한 결과가 나오지 않을까 해서요.
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
KFold를 사용하는 이유와 roc_auc가 더 높게 나오는 이유가 뭔가요..?
안녕하세요. 강의 내용 중 교차검증에서 질문이 있어 글을 남깁니다. 이전에 Stratified K 폴드는 불균형한 분포도를 가진 레이블 데이터 집합을 위한 K폴드 방식이라고 설명해주시면서 책에도 '왜곡된 레이블 데이터 세트에서는 반드시 Stratified K폴드를 이용해 교차 검증해야 합니다. 사실, 일반적으로 분류에서의 교차 검증은 K폴드가 아니라 Stratified K폴드로 분할돼야 합니다.' 라고 돼있는데 1. 여기서도 '만족 고객보다 불만족 고객이 훨씬 많은 불균형 데이터임에도 XGBClassifier와 LightGBM을 search_space값으로 교차검증할 때, StratifiedKFold가 아닌 KFold로 교차검증을 하는 특별한 이유가 있을까요..? 또, 실제로 제가 기존 소스코드에서 KFold가 아닌 Stratified로 돌렸을 때 2. XGB같은 경우 Stratified K폴드는 0.8456, KFold는 0.8457의 roc_auc값을 갖고, LightGBM 같은 경우 Stratified K폴드는 0.8411, KFold는 0.8446으로 두 모델 모두 KFold로 교차검증을 진행했을 때 더 높은 roc_auc값을 갖는 이유가 무엇인지 알 수 있을까요..? 제가 Stratified KFold와 KFold에 대해 잘못 이해하고 있는 것인지, 이런 경우에는 적용할 필요가 없는 것인지 알고 싶습니다 ㅠㅠ