✅ 오늘 한 것
최종 프로젝트
✏️ 오늘 배운 점
B-Cell Epitope 예측을 위한 High-Recall 하이브리드 대시보드 설계
1. 🎯 배경 및 문제 정의 (Problem Statement)
- 목표: 새로운 바이러스 항원(Antigen) 서열이 주어졌을 때, 항체와 결합할 가능성이 높은 구간(Epitope)을 예측하는 웹 대시보드 구축.
- 핵심 문제:
- Inference 데이터의 한계: 학습 데이터엔 정답(Epitope 서열)과 실험 정보(Method)가 있지만, 실제 서비스 단계에서는 오직 '항원 서열'만 주어짐. (Data Leakage 방지 필요)
- 데이터 불균형: 긴 항원 서열(500aa) 중 에피토프는 극히 일부(16aa). 95% 이상이 Negative(Background) 데이터임.
- 놓치면 안 되는 리스크: 1차 선별 단계에서 실제 에피토프를 놓치면(False Negative) 뒤에서 복구할 방법이 없음.
2. 🏗️ 시스템 아키텍처: 2-Stage Funnel Strategy
전체 데이터를 단계별로 걸러내는 깔때기(Funnel) 구조를 설계함.
- Stage 1: AI Screening (범용 예측 엔진)
- 목표: High Recall (재현율 극대화). 노이즈가 좀 섞이더라도 진짜 후보는 절대 놓치지 말자.
- 입력: Antigen Window (16aa) + Disease + State (실험 정보 제외).
- 모델: CatBoost + LightGBM 앙상블.
- Stage 2: Context Filtering (규칙/랭킹 엔진)
- 목표: High Precision (정밀도).
- 입력: 사용자 선택 옵션 (Assay, Method 등).
- 로직: AI 점수에 사용자가 선택한 실험 특성(예: 친수성, 구조적 노출도) 가중치를 적용하여 재정렬(Re-ranking).
3. 🛠️ 기술적 해결 과정 (Engineering)
A. Recall 극대화를 위한 모델링 전략
- Soft Voting & OR Logic:
- 두 모델(CatBoost, LGBM) 중 하나라도 강하게 의심하면 양성으로 판정하는 앙상블 전략 사용.
- Class Imbalance 처리:
- scale_pos_weight를 Imbalance Ratio * 1.2배로 설정하여 모델이 소수 클래스(Epitope)에 더 민감하게 반응하도록 유도.
- Threshold Tuning:
- 기본값 0.5가 아닌 0.4 (또는 그 이하)로 임계값을 낮추어 FN(놓치는 것)을 최소화.
B. Hyperparameter Tuning의 딜레마와 해결 (Optuna)
- 시행착오: 처음에 ROC-AUC를 목표로 튜닝했더니 모델이 너무 신중해져서(Precision 상승), 오히려 Recall이 떨어지는 현상 발생.
- 원인 분석: AUC는 전체적인 랭킹 능력을 보지만, 나는 특정 Threshold에서의 '검거율'이 중요했음.
- 해결책: Optuna의 목적 함수(Objective Function)를 recall_score (at threshold 0.4)로 직접 변경하여 튜닝 수행.
4. 📊 최종 성과 (Results)
- Test Set: 총 32,960개의 윈도우 데이터.
- 성과 지표:
- Recall: 80% 이상 달성 (Threshold 0.4 기준).
- Confusion Matrix 해석:
- 모델이 전체 데이터의 약 82%(약 27,000개)인 True Negative(배경 서열)를 효과적으로 제거함.
- 남은 18%의 후보군 안에 실제 정답의 대부분을 포함시키는 데 성공.
- 의의: 막대한 양의 서열 데이터 중 "분석 가치가 있는 후보"를 1/5 수준으로 압축하여 연구 효율성을 극대화함.
📌추가로 해야 할 점
최종 프로젝트
'품질관리(QAQC) 데이터 부트캠프(본캠프)' 카테고리의 다른 글
| 본캠프_19주차(월)_TIL(최종 프로젝트) (0) | 2026.01.19 |
|---|---|
| 본캠프_18주차(금)_TIL(최종 프로젝트) (0) | 2026.01.16 |
| 본캠프_18주차(수)_TIL(최종 프로젝트) (0) | 2026.01.14 |
| 본캠프_18주차(화)_TIL(최종 프로젝트) (0) | 2026.01.13 |
| 본캠프_18주차(월)_TIL(최종 프로젝트) (0) | 2026.01.12 |