
[3] EDA + Sliding Window
1. Sequence 인코딩 전략
Epitope 길이는 25 aa로 통일
표준 20개 아미노산 one-hot encoding
각 epitope → (25 × 20) → 500차원 벡터
위치별 아미노산 정보 보존 → linear epitope motif 분석 가능
고차원 임베딩을 아직 사용하지 않은 이유: 위치와 motif 수준의 해석 가능성 확보가 본 분석의 핵심 목적
아직은 성능 상한이 아닌 원인 규명이 중요하다고 판단 (sliding window 길이에 대한 지식x)
2. Assay 정보 처리
assay(method)를 one-hot encoding
같은 epitope라도 assay에 따라 결과가 달라질 수 있음을 모델에 명시적으로 전달
최종 feature 구성 = [ sequence one-hot (500 dim) | assay one-hot ]
3. 모델 및 평가 설정
Logistic Regression, Random Forest, Linear SVM, XGBoost (가능 시)
5-fold Stratified CV - P/N 비율 유지, 극심한 클래스 불균형 완화, 일반화 성능 평가에 필수
평가 지표: [1] ROC_AUC - 전체 판별 능력, [2] F1_Binary - epitope 탐지 핵심 성능,
[3] Recall - epitope를 놓치지 않는 능력, [4] Precision - 예측 신뢰도, [5] F1_Macro - 클래스 불균형 고려
| 모델 | 핵심 특성 |
| Logistic Regression | F1_Binary·Recall 최고 → epitope 탐지에 가장 민감 |
| Random Forest | ROC_AUC·Precision 최고 → 고신뢰 epitope 선별 |
| Linear SVM | 전반적으로 보수적 |
| XGBoost | 불균형 데이터에서 탐지 성능 저하 |
1️⃣ Logistic Regresssion - 높은 Recall, F1_Binary, False positive는 많지만 screening / vaccine candidate 탐색 단계에 최적
assay 효과를 선형적으로 흡수 가능, feature coefficient 해석 가능 → 이후 분석의 핵심 모델로 채택
2️⃣ Random Forest - Precision, ROC_AUC 우수, epitope를 놓침 (Recall 낮음) → 후반 정제 단계용 high-confidence filter
4. Assay 정보 제거 실험
Seq only vs Seq + Assay, 동일한 모델과 동일한 CV 조건, assay 정보만 제거하여 직접 비교
결과 요약: Seq + Assay ≈ Seq only (모든 모델에서 거의 동일)
EDA에서 확인된 것처럼 label이 이미 assay-normalized 되어 있음
따라서 모델 입장에서 assay 정보는 추가적인 예측력을 제공하지 못함 → Epitope sequence 자체에 유의미한 signal 존재
5. Logistic Regression 기반 Epitope Motif 분석
Positive coefficient → 특정 위치에 방향족·소수성 잔기 존재 시 epitope 확률 증가
Negative coefficient → 음전하 잔기는 epitope 형성에 불리
핵심 위치 도출: Pos13, Pos16 = epitope 형성에 강하게 기여
Pos15 = 거의 모든 아미노산에서 강한 negative coefficient (i.e. Gatekeeper / disruptor position)
6. Position 중요도 검증 실험
a. Pos15 masking 실험 - Pos15 정보 제거 시 ROC_AUC, F1, Recall 모두 하락
단순 노이즈가 아니라 epitope 형성을 제약하는 결정적 위치
b. Core region (Pos12-16) 실험 - Core만 사용해도 F1_Binary 유지, Recall 감소, Precision 소폭 상승
Central core motif 기반 linear epitope 주고와 일치, vaccine epitope 특성과 정합
7. Sliding Window 분석
Epitope 중심을 기준으로 다양한 길이의 sliding window를 적용하여 예측 성능을 비교해 보았을 때
Window 길이 8–16 aa 구간에서 성능이 가장 안정적, Epitope signal이 중앙 core 주변에 국소적으로 집중됨
⚠️ 전처리 기준 변경: (전) Epitope 길이 8 - 25 → (후)16 aa window
8. disease 정보 처리 및 제거 실험
Disease 포함 - 모든 모델에서 ROC-AUC, Recall, F1_Binary 상승
Disease 제거 - epitope ranking 및 탐지 성능 전반적 하락 독립적인 biological context 정보
| 문제 설명 | solution.py |
| #115 호텔을 운영 중인 코니는 최소한의 객실만을 사용하여 예약 손님들을 받으려고 합니다. 한 번 사용한 객실은 퇴실 시간을 기준으로 10분간 청소를 하고 다음 손님들이 사용할 수 있습니다. 예약 시각이 문자열 형태로 담긴 2차원 배열 book_time이 매개변수로 주어질 때, 코니에게 필요한 최소 객실의 수를 return 하는 solution 함수를 완성해주세요. |
def solution(book_time):
time_table = [0] * (60 * 24 + 1)
for start, end in book_time:
start_minutes = 60 * int(start[:2]) + int(start[3:])
end_minutes = 60 * int(end[:2]) + int(end[3:]) + 10
time_table[start_minutes] += 1
if end_minutes < 60 * 24:
time_table[end_minutes] -= 1
cur, answer = 0, 0
for t in time_table:
cur += t
answer = max(answer, cur)
return answer
|
'내일배움캠프 QAQC 3기 > 최종 프로젝트' 카테고리의 다른 글
| 최종 프로젝트 10일차: 중간 결과물 PPT (1) (0) | 2026.01.12 |
|---|---|
| 최종 프로젝트 9일차: [4] 모델링 파이프라인 (0) | 2026.01.09 |
| 최종 프로젝트 5일차: [2] Linear Epitope Prediction (0) | 2026.01.05 |
| 최종 프로젝트 4일차: 고장 데이터 분석과 수명 예측 (0) | 2026.01.02 |
| 최종 프로젝트 3일차: 개인 데이터 기반 챗봇 구현, 신뢰성 분석 기초 (0) | 2025.12.31 |