프로젝트 3주차 타임라인 (Fri Jan 6 2026)


[6] XGB-MLP 앙상블

모델 파라미터 조정값 설정 목적
XGB max_depth 5 트리 복잡도 제한을 통한 과적합 방지
min_child_weight 7 충분한 샘플이 있는 노드에서만 분기하여 노이즈 분할 억제
subsample 0.7 샘플 부분 학습으로 분산 감소 및 일반화 성능 향상
colsample_bytree 0.6 특정 feature 의존도 감소
scale_pos_weight ≈ 2.01 클래스 불균형 완화 (과도한 양성 보정 방지)

MLP

hidden_layer_sizes (128,) 비선형 패턴 포착과 과적합 간 균형
alpha 1e-4 L2 정규화를 통한 학습 안정화
batch_size 256 계산 효율과 학습 안정성 균형
SMOTE 적용 소수 클래스(epitope) 샘플 다양성 확보

 

High Precision Filtering (threshold = 0.811)

확률이 매우 높은 샘플만 통과시켜 비용/시간이 큰 실험 단계로 넘기기 위한 최종 관문

→ wet-lab 실험 전, 제한된 리소스 환경, high-confidence epitope 제시가 필요한 경우

장점: 높은 신뢰도, 실험 실패 비용 최소화

단점: Recall 낮음, 일부 epitope는 의도적으로 포기

기준 Precision ≥ 0.9  
목적 False Positive 최소화
사용 시점 실험 비용이 높고 잘못된 epitope 예측이 치명적인 경우
모델 역할 High-confidence epitope 선별
임계값 Precision ≥ 0.9 중 Recall 최대
0.811
성능지표 Precision = 0.9023
Recall = 0.1482
Macro-F1 = 0.6167
ROC-AUC = 0.9583
AUPRC = 0.6136
MCC = 0.3564
해석 낮은 Recall은 성능 저하가 아닌
고신뢰 epitope만 선별하기 위한 의도적인 trade-off

문제 설명 solution.py
#121 어느 공원 놀이터에는 시소가 하나 설치되어 있습니다. 이 시소는 중심으로부터 2(m), 3(m), 4(m) 거리의 지점에 좌석이 하나씩 있습니다. 이 시소를 두 명이 마주 보고 탄다고 할 때, 시소가 평형인 상태에서 각각에 의해 시소에 걸리는 토크의 크기가 서로 상쇄되어 완전한 균형을 이룰 수 있다면 그 두 사람을 시소 짝꿍이라고 합니다. 즉, 탑승한 사람의 무게와 시소 축과 좌석 간의 거리의 곱이 양쪽 다 같다면 시소 짝꿍이라고 할 수 있습니다. 사람들의 몸무게 목록 weights이 주어질 때, 시소 짝꿍이 몇 쌍 존재하는지 구하여 return 하도록 solution 함수를 완성해주세요.
from collections import Counter

def solution(weights):
     answer = 0
     counter = Counter(weights)
     for w, c in counter.items():
          if c >= 2:
               answer += c * (c - 1) // 2
     ratios = [(2, 3), (2, 4), (3, 4)]
     for w in counter:
          for d1, d2 in ratios:
               if (w * d2) % d1 == 0:
                    target = (w * d2) // d1
                    if target in counter and target > w:
                         answer += counter[w] * counter[target]
     return answer

 

+ Recent posts