오늘은 미니프로젝트5 5일차로 캐글을 진행했습니다.
어제와 비슷한 주제이지만 제공된 컬럼만 가지고 분류모델을 진행했습니다.
저는 AutoML인 PyCaret을 사용했습니다. 원래는 이제 PyCaret을 통해 나온 상위 3개의 모델을 가지고 soft보팅을 한 후 해당 모델을 튜닝까지 진행할려고 했지만 시간부족으로 전부 진행하지 못해서 중간 단계로만 제출하니 낮은 점수가 나왔습니다.
!pip install pycaret
!pip install markupsafe==2.0.1
원래 !pip install pycaret[full]을 해주어야 catboost까지 자동 모델링이 가능한데 에러가 나와서 그냥 !pip install pycaret로 설치했습니다.
from pycaret.classification import *
분류 모델 문제를 진행해서 위와 같이 호출해줍니다.
exp = setup(data=train_df, target='Activity_dynamic', train_size=0.9, normalize=True, polynomial_features=True, remove_multicollinearity=True)
best_5 = compare_models(sort='Accuracy', n_select=5)
blended = blend_models([best_5[0], best_5[1]], fold=5, method='soft')
tunning_model = tune_model(blended)
이제 이렇게 모델링이 끝났다면 아래와 같이 test 셋에도 전처리를 진행해줍니다.
# test에 대한 전처리
pipeline = get_config('pipeline')
test_auto_preprocessed = pipeline.transform(test)
test데이터에 대해 전처리까지 완료했으면 마지막으로 예측값을 만듭니다.
y_pred = tunning_model.predict(test_auto_preprocessed)
시간이 더 있었다면 좋은 모델을 만들었을텐데 욕심이 과했다고 생각합니다.
머신러닝 미니프로젝트가 완료된 하루였습니다.
※공부하고 있어 다소 틀린점이 있을 수 있습니다. 언제든지 말해주시면 수정하도록 하겠습니다.
※용어에 대해 조금 공부 더 해서 수정하겠습니다.