✅ 오늘 한 것
최종 프로젝트
✏️ 오늘 배운 점
Confusion Matrix
TP: 진짜 양성(모델이 양성이라고 예측하고 실제로 양성인 경우)
FN: 가짜 음성(모델이 음성이라고 예측했으나 실제로는 양성인 경우)
FP: 가짜 양성(모델이 양성이라고 예측했으나 실제로는 음성인 경우)
TN: 진짜 음성(모델이 음성이라고 예측하고 실제로 음성인 경우)
1. 🎯 프로젝트 목표 및 시나리오 확정
- 목표: 연구자가 입력한 항원 데이터를 기반으로 실험 성공 확률이 높은 후보를 추천해주는 대시보드 백엔드 구축.
- 구조 (Funnel 방식):
- Stage 1 (High Recall): "생물학적 가능성 탐색"
- 입력: Antigen(서열), Disease, State
- 역할: 실험 방법과 무관하게, 반응할 가능성이 있는 후보를 넓게 확보 (Recall 85% 목표).
- Stage 2 (High Precision): "실험 환경 최적화"
- 입력: Antigen, Disease, State + Assay, Method
- 역할: 사용자가 선택한 실험 조건(ELISA 등)에서 성공할 확률 정밀 예측 (Soft Ensemble 적용).
- Stage 1 (High Recall): "생물학적 가능성 탐색"
2. 🛠️ 주요 기술적 의사결정 (Key Decisions)
- Feature Selection (학습 변수):
- 결정: 1차 및 2차 모델 학습 시 Assay와 Method를 제외하고, Disease, State만 사용.
- 이유: 대시보드 사용자가 초기 입력 시 실험 방법을 모를 수 있으며, 모델이 특정 실험 도구에 과적합(Overfitting)되는 것을 막기 위함.
- 활용: 2차 예측(Inference) 단계에서만 Assay, Method를 입력받아 조건부 시뮬레이션 용도로 사용.
- Embedding 차원 통일:
- Antigen + Epitope (2048차원) 대신 Antigen (1024차원)만 사용하기로 통일하여 Stage 1과 Stage 2 간의 차원 불일치 에러 해결.
- Alpha Tuning:
- 1차 점수(0.4)와 2차 점수(0.6)를 섞는 Soft Ensemble (alpha=0.4) 도입으로 안정성 확보.
3. 💻 코드 수정 및 트러블 슈팅
- 라이브러리 에러 해결: transformers(T5Tokenizer), tqdm(진행바), re(정규식) 누락된 import 추가.
- Blind Test 대응:
- Test 데이터(test_metadata.csv)에 정답(label)이 없는 상황 확인.
- 평가(Accuracy, Recall 계산) 코드를 제거하고, 순수 예측 및 리스트 추출 코드로 전환.
- 파이프라인 연결:
- [Test 데이터 로드] → [1차 선별] → [1차 통과자 저장] → [2차 정밀 분석] → [최종 후보 저장]의 흐름 완성.
4. 📊 최종 결과 (Inference Result)
- 입력 데이터: 97,607개 (새로운 항원 후보)
- 1차 통과: 29,098개 (약 30% 생존)
- 2차 통과: 14개 (0.01% 생존, Threshold 0.811 기준)
- 해석:
- 모델이 매우 엄격하고 정밀하게 작동하고 있음을 확인.
- "실험비 낭비 없이 확실한 것만 추천한다"는 목표 달성.
- 만약 추천 개수가 너무 적다면 Top-N (상위 100개) 방식으로 유연하게 리스트를 제공하면 됨.
📌추가로 해야 할 점
최종 프로젝트
'품질관리(QAQC) 데이터 부트캠프(본캠프)' 카테고리의 다른 글
| 본캠프_19주차(목)_TIL(최종 프로젝트) (0) | 2026.01.22 |
|---|---|
| 본캠프_19주차(수)_TIL(최종 프로젝트: 중간 발표회 & 피드백) (0) | 2026.01.21 |
| 본캠프_19주차(월)_TIL(최종 프로젝트) (0) | 2026.01.19 |
| 본캠프_18주차(금)_TIL(최종 프로젝트) (0) | 2026.01.16 |
| 본캠프_18주차(목)_TIL(최종 프로젝트) (0) | 2026.01.15 |