-
카테고리
-
세부 분야
딥러닝 · 머신러닝
-
해결 여부
미해결
파이썬래퍼XGBoost에서도 실제 업무에서는
21.02.25 13:16 작성 조회수 357
0
선생님~xgb.train의 인자에서 evals=wlist 이렇게 넣어주셨는데요~
wlist = [(dtrain,'train'),(dtest,'eval') ]에서
원래 실제 업무에서는 dtest가 아니라,
(dtrain에서 다시 학습데이터를 학습-검증 나눈 다음에) 검증데이터를 넣어줘야 하는 것이지요?
그렇다면, 파이썬래퍼에서 evals에 검증데이터를 넣어주기 위해서는 (사이킷래퍼에서는 eval_set에서 검증데이터 넣어주기 위해서는)
학습데이터를 train_test_split으로 나눠야 하는 건가요?
cross_val_socre에서는 그냥 학습데이터만 넣어주면 자체에서 학습-검정으로 나눠주지만..
파이썬래퍼 xgboost에서 볼때, dtrain에 학습을 넣고 eval에 학습, 검증데이터를 넣어줘야 하니..
매번 강의마다 데이터가 적어서 이렇게 하시는 건 이해하지만..
좀 처음 배울 때에는
실제업무에서와는 다른 방식이 굉장히 헷갈립니다..ㅠㅠㅠ ..
데이터가 적더라도 실제로 하는 방식으로 보여주는 예제도 있었으면 좋겠습니다..ㅠㅠ
혹시 강의 뒷부분에서는 실제업무처럼 제대로 잘 이루어지는 강의내용이 있나요~? ㅜㅜ
항상 좋은 강의 정말 잘 듣고 있고 답변도 매번 자세히 잘 해주셔서 선생님께 정말 감사합니다..ㅠㅠ
그런데 학습-검증-테스트 이런 부분만 나오면.. 데이터가 적어서 ㅠㅠ
계속 이렇게 하셔서 이 부분이 굉장히 좀 헷갈리고 그렇습니다..ㅠㅠ
답변을 작성해보세요.
1
권 철민
지식공유자2021.02.26
그 wlist = [(dtrain,'train'),(dtest,'eval') ]에서
원래 실제 업무에서는 dtest가 아니라, (dtrain에서 다시 학습데이터를 학습-검증 나눈 다음에) 검증데이터를 넣어줘야 하는 것이지요? (1번질문)
=> 네 맞습니다.
그게 맞다면,
학습데이터를 학습-검증으로 나눌 때, train_test_split으로 나눠야 하는 건가요?(2번질문)
=> 네 맞습니다. 다만 꼭 train_test_split()함수를 쓰실 필요는 없고, 나눌 수 있는 다른 함수가 있다면 아무거나 가능합니다.
0
freedom07
질문자2021.02.26
그렇군요..ㅠ 처음 배우다 보니 계속 헷갈리고..조금 더 정확한 걸 원하게 되는 습관이 있어서 ..ㅠㅠ고쳐야겠네요..ㅠㅠ
그럼 이것만 확인 답변 꼭 부탁드릴게요..ㅠㅠ ..!!
데이터가 많은 것을 전제로 해서,
파이썬래퍼 XGBoost에서
xgb.train( )의 인자중 evals=wlist 로 넣었는데
그 wlist = [(dtrain,'train'),(dtest,'eval') ]에서
원래 실제 업무에서는 dtest가 아니라, (dtrain에서 다시 학습데이터를 학습-검증 나눈 다음에) 검증데이터를 넣어줘야 하는 것이지요? (1번질문)
그게 맞다면,
학습데이터를 학습-검증으로 나눌 때, train_test_split으로 나눠야 하는 건가요?(2번질문)
(cross_val_score나 GridSearchCV에서는 학습데이터만 넣어주면 자체적으로 학습-검증데이터로 나눠줘서 train_test_split으로 나눌 필요가 없었지만, xgb.train() 함수 인자에서는 dtrain인자와 evals 인자가 따로 나뉘어져 있기에..)
1번 질문과 2번질문 답변 꼭 부탁드릴게요 ㅠㅠ..!
매번 답변 정말 감사하고..좋은강의 정말 감사합니다..ㅠ!!
0
권 철민
지식공유자2021.02.25
질문의 요지가 헷갈리는 군요.
암튼, 실무에서도 학습 -> 검증 -> 테스트로 합니다.
단 데이터가 적으면 학습->Fold 검증만 수행하고 배포합니다. 데이터도 적은데 테스트 용으로 따로 쪼개서 학습할 데이터를 부족하게 만들지는 않습니다.
지난번에도 비슷한 답변을 드린것 같습니다만, 너무 기계적으로 학습->검증->테스트로 접근하지 않으셨으면 합니다.
다시 말씀 드리지만 학습할 데이터도 적은데, 굳이 전체 데이터를 쪼개서 학습/테스트 만들고, 다시 학습 데이터 쪼개서 검증 만들고 하면서 까지 학습 할 데이터를 줄일 필요는 없습니다.
답변 3