작성
·
193
0
만약 스태킹 모델(lr_final)을 pickle 등 객체로 저장하여
경연 등에서 정답 분류에 사용하고자 할 때,
스태킹 모델인 lr_final뿐 아니라 lr_final 모델을 만드는데 사용한 knn_clf, rf_clf, dt_clf, ada_clf 4개의 classifier 모두 객체로 저장해야 하는걸까요?
5개의 classifier를 모두 불러온 후 예측하고자 하는 데이터셋을 개별 모델들의 predict 함수의 인자로 넣어준 후, 이를 스태킹 모델의 인자로 다시 넣어주는게 맞는 순서인건가요??!!
답변 2
1
안녕하십니까,
스태킹의 경우 pickle로 모델을 저장해서 predict를 하려면 일반적으로는 메타 모델이 사용할 테스트 데이터를 다시 만들어야 합니다. 이 경우에는 개별 모델(knn, rf, dt, ada)들이 모두 pickle로 저장되어 있어야 합니다.
그러니까 메타 모델은 일반적으로 주어지는 테스트 데이터가 아니라 stacking형태로 된 테스트 데이터가 주어져야 합니다. 이를 위해서 개별 모델을 이용해서 다시 테스트 데이터를 만들어 줘야 합니다.
그리고
"5개의 classifier를 모두 불러온 후 예측하고자 하는 데이터셋을 개별 모델들의 predict 함수의 인자로 넣어준 후, 이를 스태킹 모델의 인자로 다시 넣어주는게 맞는 순서인건가요??!!"
는 5개의 classifier를 모두 불러온 후 예측하고자 하는 데이터셋을 개별 모델들의 predict 함수의 인자로 넣어줘서 테스트 데이터를 만든 후 이를 스태킹 모델의 predict 인자로 넣어서 예측을 해줘야 합니다.
감사합니다.
0
답변 감사합니다, 책이나 강의 예시에서는 knn, rf, dt, ada 4가지 개별 분류 기법을 stacking 하는 방식으로 구현하셨는데,
혹시 경연(대회) 등에서 정확도 향상 등을 목적으로 XGBoost와 LGBM, CatBoost와 같은 부스팅 알고리즘을 stacking 할 수도 있는걸까요???
네 그렇게 하셔도 됩니다