
[4] 모델링 파이프라인
1. PLM Embedding (ProtT5-XL-UniRef50)
(1) Epitope Embedding - 아미노산을 token 단위로 분리 후 Transformer encoder 출력에 mean pooling 적용
(2) Antigen Ebmbedding - Epitope의 start-end 위치를 이용해 중심점을 계산하고 중심 기준 ±8 residues 슬라이싱
→ 각 epitope와 antigen slice를 1024차원 벡터로 변환 후 X_embeddings.npy로 저장
2. 머신러닝
공통 환경 변수 - assay, method, disease, state (One-hot encoding)
비교모델 - Logistic regression, Random Forest, Linear SVM, KNN, XGBoost, MLP(DNN)
- Epitope Embedding Only (1024-d):
- 트리 기반 모델(RF, XGB) → ROC-AUC는 높으나 불균형 데이터로 인해 Recall-Precision trade-off 발생
- MLP → Macro-F1 최고, 불균형 데이터에서도 비교적 안정적적인 성능
- Epitope + Antigen Embedding (2048-d):
- MLP → 가장 균형 잡힌 성능 (Macro-F1 ≈ 0.80)
- XGBoost, CatBoost → ROC-AUC는 높으나 Precision-Recall 간 trade-off 존재
3. Label Imbalance Handling 실험
| 단일 모델 | 앙상블 | 결과 요약 | |
| SMOTE | MLP (Macro-F1 최고), LGBM, XGB (Recall 향상) |
LGBM + MLP, XGB + MLP (MCC, AUPRC, Macro-F1 우수) |
SMOTE + MLP 기반 앙상블이 가장 안정적 |
| Class Weight | Recall 대폭 상승, Precision 급감 | 탐지 목적(high recall)에는 유리하지만 정밀 예측에는 부적합 |
|
| SMOTE + Class Weight |
XGBoost + MLP (AUPRC, MCC, Macro-F1 모두 상위권) | CAT + LGBM + MLP (전체 성능 지표의 균형이 가장 우수) |
|
안정성 중심 → LGBM + MLP (SMOTE)
최고 성능 → XGBoost + MLP (SMOTE + Class Weight)
발표/논문용 → XGBoost + LGBM + MLP
Note
앙상블 개수가 높을수록 성능이 높아지지 않으며 단일 지표 기반 모델 선택은 위험할 것 같음
구조적으로 다른 모델 간 조합이 성능 향상의 핵심이 될 것 같음
| 문제 설명 | solution.py |
| #116 좌표평면을 좋아하는 진수는 x축과 y축이 직교하는 2차원 좌표평면에 점을 찍으면서 놀고 있습니다. 진수는 두 양의 정수 k, d가 주어질 때 다음과 같이 점을 찍으려 합니다. (1) 원점(0, 0)으로부터 x축 방향으로 a*k(a = 0, 1, 2, 3 ...), y축 방향으로 b*k(b = 0, 1, 2, 3 ...)만큼 떨어진 위치에 점을 찍습니다. (2) 원점과 거리가 d를 넘는 위치에는 점을 찍지 않습니다. 정수 k와 원점과의 거리를 나타내는 정수 d가 주어졌을 때, 점이 총 몇 개 찍히는지 return 하는 solution 함수를 완성하세요. |
def solution(k, d):
answer = 0
for i in range(0, d + 1, k):
max_y = d * d - i * i
answer += int(max_y ** 0.5) // k + 1
return answer
|
'내일배움캠프 QAQC 3기 > 최종 프로젝트' 카테고리의 다른 글
| 최종 프로젝트 11일차: 중간 결과물 PPT (2) (0) | 2026.01.13 |
|---|---|
| 최종 프로젝트 10일차: 중간 결과물 PPT (1) (0) | 2026.01.12 |
| 최종 프로젝트 6일차: [3] EDA + Sliding Window (0) | 2026.01.06 |
| 최종 프로젝트 5일차: [2] Linear Epitope Prediction (0) | 2026.01.05 |
| 최종 프로젝트 4일차: 고장 데이터 분석과 수명 예측 (0) | 2026.01.02 |