2026-1학기/project

fda) 2stg 예측모델

mo_o 2026. 4. 23. 11:48

피드백 반영시 핵심 포인트 

- auc 동일하도록 설계: 비슷한 샘플사이즈값

- 구조모델 결과와 + 실험모델 데이터를 넣었을 때의 개선값을 보고자 함: 목적

 

일단은 내부데이터

breast: 0/ colon:1 (histology binary 컬럼)

 

ctrp+gds의 외부데이터

공통컬럼으로 rename

fp 합쳐주기

source 표시해주기


연구 목적 재정의

 

"구조 정보(smiles/fp/physicochemical)만으로 FDA 승인 예측" vs "거기에 마우스 실험데이터 추가했을 때 성능 개선"

 

 

권장 연구설계: Early Fusion (Feature Concatenation)

Late Fusion보다 이게 더 적합한 이유:

  • Late Fusion은 두 모델을 따로 학습 후 예측값을 합치는 방식 → 샘플사이즈 불균형 문제(교수님 지적)가 그대로 남음
  • Early Fusion은 같은 샘플에 피처를 추가하는 방식 → 공정한 비교 가능
[모델 A] 구조모델 (베이스라인)
  입력: smiles 피처 + fp + physicochemical 7가지
  대상: 전체 약물 (내부 + 외부)
  
[모델 B] 구조+실험 모델
  입력: 모델A 피처 + 실험데이터 (독성, 용량, 투여경로 등)
  대상: 실험데이터 보유 약물만 (내부데이터)
  
비교: 동일 샘플(내부데이터)에서 A vs B 성능 차이

 

핵심 포인트 (공정한 비교 조건)

조건방법
동일 샘플 모델 A, B 모두 내부데이터 약물만으로 평가
동일 split 같은 train/test split 사용
외부데이터 역할 모델 A의 사전학습/증강에만 사용 (test는 내부만)

 


내부데이터 

샘플 수 → 내부데이터 약물 수가 몇 개인지에 따라 CV 전략이 달라짐 (적으면 LOO, 많으면 k-fold)

적음요.. 158개였나

 

수정사항: 유니크드러그수 = 약물 -> 약물*암종 으로 남겨야함.

drop_duplicates(keep="first")로 했으면 breast/colon 중 첫 행만 살아있을 거예요.

내부데이터는 약물×암종 단위로 가야 해요. 왜냐면:

  • breast/colon 각각 FDA 라벨이 다를 수 있고
  • 실험데이터(독성, 용량 등)도 암종별로 다를 수 있으니까요

앞선 결과랑 다른 건 없었음

 

 

외부데이터 전처리: 약물*암종


암종별 분리모델로 돌려봐도 되긴 하는데. 약물*암종으로 했을 때, 외부데이터는 모든 유니크약물이 각각 breast와 colon에 있던거고, 내부데이터의 경우, 모두 있었던 데이터는 14개뿐이었다는 거지?.. 그러면 데이터수가 많은 것부터 분리해서 봐볼까?

 

 

[Breast 모델]
Train: 외부 breast 562개 (구조피처만)
Test:  내부 breast 82개 (고정)

모델A: 구조피처(fp + physicochemical + smiles)
       → Train 외부 562 + Test 내부 82
       
모델B: 구조피처 + 실험피처(독성, 용량, 투여경로 등)
       → Train 외부 562(실험피처 NaN) + Test 내부 82
          ※ 실험피처는 내부데이터만 존재 → train은 0 또는 NaN처리
          
AUC 비교: 동일 82개로 A vs B

[Colon 모델]
동일 구조, test 내부 colon 54개 고정

모델B에서 외부데이터(train)에 실험피처가 없어요. 해결 방법:

  1. train 외부는 실험피처 0으로 채우기 → 모델이 0을 "실험없음"으로 학습
  2. 내부데이터만으로 모델B 학습 → 샘플 수 너무 적음 (LOO 필요)
  3. 내부데이터를 train/test split → 샘플 수가 너무 적어서 불안정
모델A (구조만, 외부+내부 train):
  - 외부 562개 + 내부 81개 train → 내부 1개 test (LOO 반복)
  - 실험피처 없이 구조피처만

모델B (구조+실험, 내부만 LOO):
  - 내부 81개 train → 내부 1개 test (LOO 반복)
  - 구조피처 + 실험피처 모두 사용

비교: 82개 test 예측값으로 A vs B AUC

와중 ctrp의 경우, 약물*암종 2개씩 다 들어가있어서,

총 행이 2배 더블링 되었음. 참고/.


내외부 파일 합.

 

1. 스마일식생성

smiles는 fp, physicochemical 등 모든 구조피처의 원천이라서 항상 같이 저장해두는 게 좋아요

 

2. 내외부 데이터 물화 피처 생성