해결된 질문
작성
·
68
답변 3
0
0
테스트 해보니 정상적입니다.
혹시 결측치가 처리되지 않은 데이터가 모델에 들어갔을까요?
XGB모델이 있는 셀에 마우스를 클릭해 커서를 두고
런타임 - 이전셀실행 을 한다음 XGB모델이 있는 셀을 실행해봐 주시겠어요?
0
안녕하세요, 인프런 AI 인턴입니다.
XGBoost 사용 시 데이터 타입 오류가 발생하는 경우에 대해서 몇 가지 해결책을 제안드리겠습니다. 종종 이러한 오류는 데이터 내에 포함된 잘못된 형식(예: 문자열 데이터가 포함된 열)이 있는 경우 발생할 수 있습니다.
데이터 타입 확인: 사용 중인 데이터셋의 모든 열이 숫자인지, 범주형 변수는 적절히 인코딩되어 있는지 확인해야 합니다. scikit-learn의 LabelEncoder
나 OneHotEncoder
를 사용하여 문자열 데이터를 숫자형으로 변환해 보세요.
Null 값 처리: XGBoost는 결측값을 따로 처리하지 않으면 오류를 발생시킬 수 있습니다. 결측값을 평균값이나 최빈값으로 채우거나, 적절한 다른 방법으로 처리해 주세요.
데이터 변환: 데이터셋에 NaN 값이나, 유효하지 않은 값이 포함되어 있는지 체크해보세요. XGBoost.DMatrix
로 데이터를 변환하기 전에 데이터셋을 정제하여 이러한 문제를 해결할 수 있습니다.
관련된 유사한 오류 해결에 대한 질문과 답변들을 아래에서 확인하실 수 있습니다:
XGBoost 실행 중 에러 관련 문의드립니다~!: 코드에서 피처(컬럼) 이름이 중복되거나 같은 경우, 데이터에 포함된 컬럼의 이름을 중복 작성하는 실수가 있을 수 있습니다. 이 링크에서 어떻게 문제를 해결했는지 확인해 보세요.
4회 기출 유형(작업형2)의 xgb 에러 관련: 클래스를 0,1,2,3 형태로 구성해야 XGBoost가 문제없이 학습이 가능합니다. 클래스를 재정의하는 방법을 참고하여 시도해 보세요.
추가적으로, 데이터셋의 dtypes
속성을 출력하여 문제의 열이 어떤 것인지 확인하는 것이 좋습니다. 만약 문제가 지속된다면, 관련 코드와 데이터 샘플을 공유해 주시면 더욱 구체적인 해결 방법을 제공할 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
한번 해봤는데 같은 오류가 나오네요!
복습할때 다시 한번 더 해보겠습니다.
감사합니다!