DKT는 Deep Knowledge Tracing의 약자로 이번 DKT 프로젝트를 통해 저희는 "지식 상태"를 추적하는 딥러닝 방법론을 사용하여 학생의 이해도를 측정하고 미래 학습 예측을 목표로 하였습니다.
- 개발환경 : vscode, Jupyter
- 개발 언어 : Python (Pytorch)
- GPU : V100
- 협업툴 : GitHub, Wandb, MLflow
- 의사소통툴 : Slack, Notion, Zoom, Trello, Gather Town
- 2022.11 ~ 2022.12
정의준 | 채민수 | 전해리 | 이나현 | 조원준 |
전체 | 문제 정의, 계획 수립, 목표 설정, EDA, Feature Engineering, 모델 실험 |
---|---|
정의준 | TabNet, wandb, Feature Selection, Stacking Ensemble |
채민수 | SAKT 구현, CatBoost 구현, Feature Selection |
전해리 | lightGCN+lqTransfomer 구현, lightGCN+Seq model 구현, Feature Selection |
이나현 | LastQuery Transformer 구현, Feature Selection |
조원준 | CV Strategy, LGBM, XGBoost, MLflow, Feature Selection, Feature Importance, Ensemble |
Model | Details | AUROC (제출) | Accuracy (제출) |
---|---|---|---|
SAKT | userID, assessmentItemID, answerCode 만 사용, Output에 sigmoid 적용 | 0.6425 | 0.6075 |
CatBoost | 21개 피쳐 사용, learning rate = 0.01, iteration = 10000 | 0.8456 | 0.7769 |
TabNet | Sweep, Feature Selection | 0.8160 | 0.6989 |
LSTM | 16개 피처 사용, 연속형변수 batchnorm, data augmentation | 0.7828 | 0.7124 |
LSTMATTN | 16개 피처 사용, 연속형변수 batchnorm, data augmentation | 0.7747 | 0.7177 |
LastQuery Transformer | 16개 피처 사용, 연속형변수 batchnorm, data augmentation | 0.7785 | 0.7151 |
LGCN+LSTM | LGCN 임베딩(assessmentItemID, testId) 사용, Sweep | 0.7915 | 0.7339 |
LGCN+lqTransfomer | LGCN 임베딩(assessmentItemID, testId) 사용, Sweep, Feature Selection | 0.8032 | 0.7285 |
LGBM | 27개 피처 사용, 주요 피처 - Time Lag 관련 피처, learning rate = 0.023 | 0.8507 | 0.7715 |
XGBoost | 32개 피처 사용, 주요 피처 - elo Rating, learning rate = 0.023 | 0.8481 | 0.7661 |
앙상블
각 모델의 예측값에 가중치를 부여하는 Weighted Voting을 사용하였습니다.
LGBM+CatBoost, LGBM, XGBM, TabNet, LSTM, LGCN (가중치 : 40 - 30 - 15 - 5 - 5 - 5)
최종 LB AUC : 0.8486 LB Accuracy : 0.7823