1. 대회 설명
- 목표: 학생들이 작성한 영어 에세이를 자동으로 채점하는 모델 개발, 주어진 에세이에 대해 0~5점 사이의 정수 점수를 예측
- 문제 유형: 다중 클래스 분류(Multi-Class Classification)
- 데이터 배경
-> The Learning Agency에서 수집한 실제 영어 에세이 텍스트와 메타정보 제공
-> 총 8개의 prompt별로 에세이가 존재하며, essay_id, full_text, score, prompt_id 등이 주요 컬럼으로 구성
2. 성능 평가 방식 이해
- Quadratic Weighted Kappa (QWK): 단순 정확도가 아닌, 예측 점수와 실제 점수 간 '거리'를 고려해 평가
3. 데이터 전처리
3-1) EDA
- prompt_id별 에세이 분포 확인
- 각 에세이의 토큰 수, 문장 수, 단어 수 통계 확인
- 점수(score) 분포 시각화
3-2) Data Cleansing
- 별도의 불용어 제거 또는 정규화 과정 없음
- 텍스트 그대로 TF-IDF / Word2Vec 벡터화 진행
3-3) Feature Engineering
- 문단/문장/단어 단위 분석 후 통계 피처 생성
- TF-IDF + CountVectorizer: unigram & bigram 기반으로 각 10,000개 피처 생성
- Word2Vec: 사전 훈련된 벡터를 평균하여 100차원 벡터 생성
- DeBERTa 예측 결과(OOF): 사전 예측된 score 분포(soft score, 6차원)를 피처로 사용
4. 모델링
4-1) 모델
- 앙상블 기반 모델
-> LightGBM 모델 여러 개
-> 예측 결과 평균 (Soft Voting)
-> 보정값 +a를 통해 미세 조정
4-2) 데이터 분할
- 학습 시에는 5-fold cross-validation 사용
- 필사 노트북에서는 테스트 데이터셋 inference만 진행
4-3) 하이퍼파라미터 튜닝
- 필사에서는 models에 저장된 사전 학습된 모델 사용
4-4) 최종 성능
- Public Score: 0.826
- Private Score: 0.836
-> 비교적 간단한 앙상블 구성이지만 높은 정확도 확보
5. 정리(Lesson & Learned)
- 간단한 전처리와 통계 기반 피처 엔지니어링만으로도 상당한 성능 확보 가능
- TF-IDF, Count, Word2Vec, DeBERTa OOF 등 다양한 피처의 조합이 성능 향상에 기여
- 필사 도중 발생한 KeyError 및 Fragmentation Warning 문제는 concat과 누락 피처 채움 처리로 해결
- Kaggle GPU 환경(P100)에서 모든 과정을 실행
Learning Agency Lab - Automated Essay Scoring 2.0