품질관리(QAQC) 데이터 부트캠프(본캠프)

본캠프_18주차(목)_TIL(최종 프로젝트)

Wat_zy 2026. 1. 15. 08:35

✅ 오늘 한 것

최종 프로젝트


✏️ 오늘 배운 점

B-Cell Epitope 예측을 위한 High-Recall 하이브리드 대시보드 설계

1. 🎯 배경 및 문제 정의 (Problem Statement)

  • 목표: 새로운 바이러스 항원(Antigen) 서열이 주어졌을 때, 항체와 결합할 가능성이 높은 구간(Epitope)을 예측하는 웹 대시보드 구축.
  • 핵심 문제:
    1. Inference 데이터의 한계: 학습 데이터엔 정답(Epitope 서열)과 실험 정보(Method)가 있지만, 실제 서비스 단계에서는 오직 '항원 서열'만 주어짐. (Data Leakage 방지 필요)
    2. 데이터 불균형: 긴 항원 서열(500aa) 중 에피토프는 극히 일부(16aa). 95% 이상이 Negative(Background) 데이터임.
    3. 놓치면 안 되는 리스크: 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 극대화를 위한 모델링 전략

  1. Soft Voting & OR Logic:
    • 두 모델(CatBoost, LGBM) 중 하나라도 강하게 의심하면 양성으로 판정하는 앙상블 전략 사용.
  2. Class Imbalance 처리:
    • scale_pos_weight를 Imbalance Ratio * 1.2배로 설정하여 모델이 소수 클래스(Epitope)에 더 민감하게 반응하도록 유도.
  3. 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 수준으로 압축하여 연구 효율성을 극대화함.

📌추가로 해야 할 점

최종 프로젝트