✅ 오늘 한 것
최종 프로젝트
✏️ 오늘 배운 점
📝 TIL: B-Cell Epitope 예측 대시보드 구축과 High-Recall 전략
1. 배경 (Context)
- 목표: 새로운 바이러스의 항원(Antigen) 서열이 주어졌을 때, B-Cell Epitope(항체 결합 부위)를 예측하는 웹 대시보드 구축.
- 문제: 학습용 데이터에는 정답(Epitope)과 실험 정보(Metadata)가 다 있지만, 실제 예측(Inference) 단계에서는 오직 '항원 서열'만 주어짐. 기존 모델을 그대로 사용할 수 없는 문제 발생.
2. 핵심 배움 (Key Learnings)
🔍 A. 슬라이딩 윈도우(Sliding Window)와 추론의 본질
- 오해: 모델이 긴 서열에서 에피토프를 자동으로 '생성'하거나 길이를 조절해서 찾아줄 것이라 생각함.
- 진실: 모델은 '채점관'일 뿐이다.
- 시스템이 항원을 16aa 길이(고정)로 한 칸씩 자르며(Sliding) 모델에게 던져줌.
- 모델은 각 조각이 에피토프일 확률(Probability)만 계산함.
- 결국 사용자는 확률이 높은 16aa 구간을 추천받게 됨 (8~16aa 가변 길이를 모두 포함하는 안전한 그릇).
🛠️ B. 학습 피처(Feature)의 재설계 (Data Leakage 방지)
- 문제: 학습 시 Epitope 서열이나 실험 기법(Method)을 피처로 넣으면, 예측 시 해당 정보가 없어 모델이 작동하지 않음 (치팅/누수).
- 해결: 1차 선별 모델은 범용성을 위해 다음 정보만으로 학습해야 함.
- Input: Antigen Window (16aa) + Disease Category + State Category
- Drop: Epitope Sequence, Assay/Method (구체적 실험법)
🏗️ C. 하이브리드 아키텍처 (AI + Rule Engine)
대시보드는 두 단계의 '깔때기(Funnel)' 구조로 설계해야 가장 효율적임.
- Step 1 (AI 모델): "가능성 있는 놈 다 나와"
- 전략: High Recall (재현율 중심).
- 역할: 서열적 특성(소수성 등)만 보고 1차 후보군(Top-50) 선별.
- 모델: CatBoost + LightGBM 앙상블.
- Step 2 (규칙 엔진): "우리 실험 조건에 맞는 놈만 남겨"
- 전략: High Precision (정밀도 중심).
- 역할: 사용자가 선택한 실험법(예: ELISA)이나 질병 특성에 맞춰 가산점 부여 및 재정렬(Re-ranking).
📈 D. Recall 극대화를 위한 테크닉
- Soft Voting & OR Logic: 두 모델 중 하나라도 강하게 의심하면 양성으로 판정.
- Threshold 조정: 기본 0.5가 아닌 0.3~0.4로 임계값을 낮춰서 FN(놓치는 것)을 최소화.
- 지표 해석: 전체 데이터의 95%는 TN(True Negative, 배경 서열)임. 따라서 TP, FP, FN의 합계가 전체 데이터 수보다 훨씬 적어 보이는 것은 정상.
3. 적용 코드 (Implementation Snippet)
- High Recall 앙상블 모델링:
-
Python
# Recall 가중치 부여 (Positive 데이터에 1.2배 집중) recall_weight = ratio * 1.2 # 앙상블 (Soft Voting) ensemble = VotingClassifier( estimators=[('lgbm', lgbm), ('cat', catboost)], voting='soft' ) # Threshold 조정을 통한 공격적 선별 threshold = 0.35 y_pred = (y_proba >= threshold).astype(int)
4. 결론 및 성과
- Antigen + Disease/State 정보만으로 학습한 결과 Recall 약 82%, ROC-AUC 0.92 달성.
- 이는 "서열만 보고도 에피토프 가능성이 있는 구간을 80% 이상 잡아낼 수 있음"을 증명.
- 나머지 노이즈(FP)는 대시보드의 2차 필터링 기능으로 해결 가능하므로, 1차 스크리닝 엔진으로서 합격점.
💡 [Next Step]
- 확정된 .pkl 모델 파일을 웹 프레임워크(Streamlit 등)에 탑재.
- 사용자 입력(Disease/Method)에 따른 가중치 규칙(Rule-base) 로직 구현.
📌추가로 해야 할 점
최종 프로젝트
'품질관리(QAQC) 데이터 부트캠프(본캠프)' 카테고리의 다른 글
| 본캠프_18주차(금)_TIL(최종 프로젝트) (0) | 2026.01.16 |
|---|---|
| 본캠프_18주차(목)_TIL(최종 프로젝트) (0) | 2026.01.15 |
| 본캠프_18주차(화)_TIL(최종 프로젝트) (0) | 2026.01.13 |
| 본캠프_18주차(월)_TIL(최종 프로젝트) (0) | 2026.01.12 |
| 본캠프_17주차(금)_TIL(최종 프로젝트) (0) | 2026.01.09 |