[데이콘] 제2회 신약개발 AI 경진대회

2024. 9. 17. 18:59Data Science Project

제2회 신약개발 AI 경진대회 - DACON

 

제2회 신약개발 AI 경진대회 - DACON

분석시각화 대회 코드 공유 게시물은 내용 확인 후 좋아요(투표) 가능합니다.

dacon.io

 

[배경]

국내 AI 신약개발 생태계를 활성화하고, 신약 연구자들의 연구 의욕을 고취시키며 신약개발에 참여할 젊은 인재를 발굴하기 위해

제2회 신약개발 AI 경진대회 “JUMP AI 2024”를 개최합니다.

 

[주제]

IRAK4 IC50 활성 예측 모델 개발

 

[설명]

IRAK4 IC50에 대한 학습용 데이터 1,952종을 이용해 예측모델을 개발

개발한 예측모델로 경진용 평가 데이터를 사용하여 예측한 값을 제출

 

Dataset Info.

  • train.csv [파일]
  • ChEMBL IRAK4 IC50에 대한 학습용 데이터 1,952종
  • Smiles : 분자구조 데이터
  • IC50_nM : 예측 Target
  • plC50 : IC50_nM과 동일하지만, 단위가 다름

 

  • test.csv [파일]
  • ID : 고유 ID
  • Smiles : 분자구조 데이터

데이터 설명

SMILES (Simplified Molecular Input Line Entry System):

  • 화합물의 분자 구조를 텍스트로 표현한 형식이다.

IC50_nM (Inhibitory Concentration 50%):

  • 화합물의 IC50 값은 화합물이 특정 생물학적 활성을 50% 억제하는 데 필요한 농도를 나타낸다.

Target (예측 대상): IC50_nM은 이 데이터에서 예측해야 하는 값

 

plC50:

  • plC50 값은 IC50 값을 로그 스케일로 변환한 값이다. 이는 일반적으로 값을 더 쉽게 다루고 분포를 안정화하기 위해 사용된다.

 

 


데이터 분석 프로세스 설계

0. SQL 과 Python 연동 후 데이터 추출

 

1. Tableau 를 통한 데이터 이해 및 탐색 

  • 데이터 구조 파악
    • train.csv: 1,952개의 분자에 대한 SMILES 문자열, IC50_nM (예측 대상), pIC50 (IC50_nM과 동일하지만 단위가 다름).
    • test.csv: 예측해야 할 분자의 SMILES 문자열과 고유 ID.
  • 데이터 탐색
    • 기술 통계 분석
      • 중앙 경향 측정: 평균, 중앙값, 최빈값 계산.
      • 산포 측정: 분산, 표준편차, 사분위수 계산.
    • 데이터 시각화
      • 히스토그램: 타깃 변수(IC50_nM, pIC50)의 분포를 확인.
      • 박스플롯: 이상치(outlier) 확인.
      • QQ-플롯: 데이터의 정규성 검정.
    • 결측치 확인
      • 결측 데이터 확인: 결측치의 존재 여부와 패턴을 파악.
      • 결측치 처리 방법 결정: 필요한 경우 결측치를 제거하거나 대체(imputation) 방법 결정.
  • 상관관계 분석
    • 피어슨 상관계수: 연속형 변수 간의 상관관계 파악.
    • 스피어만 순위 상관계수: 비선형 관계 및 순위 기반 상관관계 파악.

2. 데이터 전처리 

  • 타깃 변수 변환
    • 단위 통일: IC50_nM과 pIC50의 관계를 이용하여 단위를 통일.
      • 일반적으로 pIC50 = -log10(IC50_nM × 10⁻⁹).
    • 로그 변환: IC50_nM의 분포를 정규화하기 위해 로그 변환 적용.
    • 정규성 검정
      • 샤피로-윌크 검정: 타깃 변수의 정규성 확인.
      • 변환 필요성 결정: 정규성이 만족되지 않으면 추가적인 변환(예: 박스-콕스 변환) 고려.
  • SMILES 문자열 처리
    • 분자 구조 파싱: RDKit 등 라이브러리를 사용하여 SMILES 문자열을 분자 객체로 변환.
    • 오류 처리: 파싱되지 않는 SMILES 문자열에 대한 오류 처리.

3. 특징 추출 및 선택 

  • 분자 특성 계산
    • 물리화학적 특성
      • 분자량(Molecular Weight)
      • 로그P (Octanol-Water Partition Coefficient)
      • TPSA (Topological Polar Surface Area)
      • 수소 결합 수용체 및 공여체 수
      • 로토블 본드 수(Rotatable Bonds)
    • 구조적 지표
      • Ring Count
      • Aromatic Proportion
  • 분자 지문(Fingerprint) 생성
    • MACCS Keys
    • Morgan Fingerprints (ECFP)
      • 반지름 및 비트 수 결정: 모델 성능에 영향을 미치므로 실험적으로 최적화.
    • 토폴로지컬 지문
      • RDKit Topological Fingerprints
  • 특징 선택
    • 상관관계 분석
      • 다중공선성 확인: 높은 상관관계를 가진 특징들 식별.
      • Variance Inflation Factor (VIF): 다중공선성의 정도를 정량화.
    • 단변량 통계 검정
      • 피어슨 카이제곱 검정: 범주형 변수의 유의성 검정.
      • ANOVA: 연속형 특징과 타깃 변수 간의 관계 검정.
    • 차원 축소
      • 주성분 분석(PCA): 특징 공간의 차원 축소 및 시각화.
      • 요인 분석: 잠재 요인 추출.

4. 데이터 분할

  • 훈련 및 검증 세트 분할
    • 무작위 분할: 데이터의 70-80%를 훈련 세트로, 나머지를 검증 세트로 분할.
    • 계층적 분할(Stratified Splitting): 타깃 변수의 분포를 유지하도록 분할.
  • 교차 검증(Cross-validation)
    • k-폴드 교차 검증: 데이터의 편향을 줄이기 위해 k 값을 결정(일반적으로 5 또는 10).
    • 반복 교차 검증: 교차 검증을 여러 번 반복하여 안정성 확보.

5. 통계적 모델링 

  • 모델 선택
    • 선형 회귀 분석
      • 단순 선형 회귀: 타깃 변수와 단일 특징 간의 관계 분석.
      • 다중 선형 회귀: 여러 특징을 사용한 회귀 모델 구축.
    • 회귀 진단
      • 잔차 분석: 잔차의 정규성, 등분산성 확인.
      • 오차 독립성 검정: Durbin-Watson 통계량 계산.
    • 모델 가정 검토
      • 선형성 가정 확인: 특징과 타깃 변수 간의 선형 관계 여부 확인.
      • 등분산성(Homoscedasticity) 확인: 잔차의 분산이 일정한지 확인.
      • 정규성 가정 확인: 잔차의 분포가 정규분포를 따르는지 확인.
  • 비선형 회귀 분석
    • 다항 회귀(Polynomial Regression): 비선형 관계 모델링.
    • 지수 회귀(Exponential Regression): 지수적 성장 또는 감소 패턴 모델링.
  • 정규화 및 변수 선택
    • 릿지 회귀(Ridge Regression): L2 정규화를 통한 과적합 방지.
    • 라쏘 회귀(Lasso Regression): L1 정규화를 통한 변수 선택 및 과적합 방지.
    • 엘라스틱 넷(Elastic Net): L1과 L2 정규화의 조합.
  • 로지스틱 회귀(Logistic Regression)
    • 분류 문제로의 변환: 타깃 변수를 임계값 기반으로 이진 분류하여 활성/비활성 예측.
    • 오즈 비율 계산: 특징의 변화가 활성 확률에 미치는 영향 해석.

6. 모델 평가

  • 평가 지표 선택
    • 회귀 모델 지표
      • R² (결정 계수): 모델이 타깃 변수를 얼마나 설명하는지.
      • Adjusted R²: 특징 수에 따른 R²의 보정.
      • RMSE (Root Mean Squared Error): 예측 오차의 표준편차.
      • MAE (Mean Absolute Error): 예측 오차의 평균 절대값.
    • 모델 통계량 검정
      • F-검정: 모델의 유의성 검정.
      • t-검정: 각 회귀 계수의 유의성 검정.
    • 잔차 분석
      • 잔차의 정규성 검정: 샤피로-윌크 검정.
      • 오차의 독립성 검정: 자기상관 확인.
  • 모델 비교
    • AIC (Akaike Information Criterion) 및 BIC (Bayesian Information Criterion): 모델의 적합도와 복잡도를 고려한 비교.
    • 교차 검증 점수 비교: 각 모델의 평균 성능 및 분산 비교.

7. 모델 개선

  • 상호작용 효과 고려
    • 상호작용 항 추가: 특징 간의 상호작용 효과를 모델에 포함.
    • 비선형 변환: 로그, 제곱근 등 특징의 비선형 변환 적용.
  • 잔차의 이분산성 처리
    • 가중 회귀 분석(Weighted Regression): 잔차의 분산이 일정하지 않은 경우 가중치를 부여.
    • 변환 회귀(Transform Regression): Y 또는 X를 변환하여 등분산성 확보.
  • 이상치 및 영향점 처리
    • 쿡의 거리(Cook's Distance): 이상치 및 영향력이 큰 데이터 포인트 식별.
    • 이상치 제거 또는 조정: 모델에 부정적인 영향을 미치는 데이터 처리.
  • 모델 단순화
    • 변수 선택 방법
      • 전진 선택(Forward Selection)
      • 후진 제거(Backward Elimination)
      • 단계적 선택(Stepwise Selection)
    • 파생 변수 생성: 새로운 특징을 만들어 모델 성능 향상.

8. 테스트 데이터 예측

  • 테스트 데이터 처리
    • 훈련 데이터와 동일한 전처리 적용: 스케일링, 변환, 특징 선택 등.
    • 특징 생성 및 선택: 훈련 데이터에서 선택된 특징만 사용.
  • 예측 수행
    • 최종 모델 사용: 개선된 최적의 통계 모델을 사용하여 예측 수행.
    • 예측 값 변환: 로그 변환 등을 사용한 경우 원래 스케일로 역변환.