Error
XGBoost predict 에러
코딩초보ran
2023. 3. 20. 18:38
Train data로 학습한 XGBoost 모델에 한 행만 input하여 predict를 하려고 하는데, 에러 발생
- 에러 메세지
XGBoostError: [18:30:57] ../src/predictor/cpu_predictor.cc:310: Check failed:
m->NumColumns() == model.learner_model_param->num_feature (1 vs. 3) :
Number of columns in data must equal to trained model.
- 에러 난 이유
- train은 2차원 데이터로 학습을 했는데, 내가 한 행만 추출해서 input으로 넣으려니까 shape이 1차원이 됐고, 1차원 데이터를 넣으니까 위 에러가 났던 것이다.
- 그래서 0:1 로 데이터를 추출을 해서 2차원 shape으로 만들고, 그 데이터를 모델에 넣어서 에러 해결했음
논외로, 한 행만 추출해서 input으로 넣는 작업을 왜 했냐면, 실제 운영에서는 1분마다 즉, 1행마다 모델에 들어가서 예측결과를 뽑을텐데, 그렇게 될 경우 통째로(우리가 모델링에서 test 할 때랑) 결과가 달라질까 해서 확인해봤음. 근데 test data 통째로 넣었을 때랑 test data를 한 행씩 넣어서 결과 뽑았을 때랑 결과 똑같음.