분석시각화 대회 코드 공유 게시물은
내용 확인 후
좋아요(투표) 가능합니다.
train 데이터 학습결과와 test 데이터 예측 결과의 차이
train 데이터 validation 결과와 test 데이터의 결과가 너무 크게 차이나서 의아합니다.
30% 이상 차이나는데 원래 그런건지요?
만약 그렇다면 수정 방향을 가이드 해주시면 감사하겠습니다.
describe으로 mean과 std를 확인해보았는데 큰 차이는 없는거 같긴합니다. variance도 마찬가지구요. 5개의 numeric features를 사용하고 있습니다.
과적합이 의심되는데, 혹시 Validation set 만들어보셨나요??
네 5cv와 10cv 둘다 해봤는데 정확도는 같았습니다. 그런데 제출용 테스트데이터를 예측하고 제출하면 30% 이상 낮게 나오네요
카테고리 인코더 어떤거 사용중이실까요?
카테고리 인코딩은 df[[object_cols]].astype('category').cat.codes 방식으로 인코딩 했었으나,
의심하시는 것처럼 카테고리 인코딩할 때 테스트데이터 인코딩이 잘 안되는지 싶어서 아예 카테고리 피쳐들은 배제하고 사용했습니다.
카테고리 피쳐를 사용하든 뉴메릭 피쳐만 사용하든 처음 train.csv에서 나온 데이터를 train과 test로 분할해서 예측해보면 81퍼정도 나오는데,
학습된 모델로 test.csv를 예측하면 52퍼센트밖에 안나옵니다.
10 fold cv도 했고, 뉴메릭 데이터의 scaling이 문제인가 싶어서 스탠다드 스케일러도 적용해봐서 테스트도 했고 적용 안해서 테스트도 해보았으나
전부 81-> 52퍼로 떨어지네요
@데이터김수형님 일단 현재로써는 리더보드 와 validation score 동기화 시키는 부분이 중요할 것으로 보입니다. 제가 실험해 본 결과 리더보드와 동기화가 가능한 상태이고, 무엇보다도 feature importance 를 뽑아 보시면 카테고리 필드의 중요도 (F09) 가 제일 높습니다. 그말인즉슨 카테고리를 배제하고 학습을 하면 제대로된 리더보드 동기화는 불가능하다고 보시면 되겠습니다.
답변 감사드립니다. 죄송합니다만 동기화가 무슨 의미인지 설명해주실 수 있으신지요? train.csv로 validate한 결과와 리더보드 결과를 일치 시키도록 학습 방법을 변경하라는 의미신가요?
답변 주신 모든 분들께 감사드립니다. 모델간 AUC의 편차가 심해 성능이 낮게 나온 것 같습니다. train 데이터의 클래스 임발란스 문제를 해결해봐야겠습니다. 인사이트를 주셔서 감사합니다.
데이콘(주) | 대표 김국진 | 699-81-01021
통신판매업 신고번호: 제 2021-서울영등포-1704호
서울특별시 영등포구 은행로 3 익스콘벤처타워 901호
이메일 dacon@dacon.io | 전화번호: 070-4102-0545
Copyright ⓒ DACON Inc. All rights reserved
주로 그럴땐 훈련 데이터와 테스트 데이터간에 분포 차이가 발생해서 생긴 오류입니다 전처리 과정시 이상이 있다고 보여집니다 어떤 feature를 쓰신지 모르겠지만 feature engineering할때 이상이 없나 한번 확인해보세요