모델링
모델링
다중 오믹스 데이터를 활용한 췌장암 예측 앙상블 모델 구축
서론
본 글에서는 다중 오믹스 데이터(CNV, 메틸화, 단백질체, 유전자 발현)를 활용하여 췌장암 예측 성능을 향상시키는 앙상블 모델 구축 과정을 상세히 설명합니다. 각 데이터 유형에 대한 개별 모델을 구축하고, 성능을 기반으로 가중 평균 앙상블을 적용하여 최종 예측을 수행합니다.
데이터 로드 및 전처리
- 데이터 로드:
- CNV, 메틸화, 단백질체, 유전자 발현 데이터를 로드합니다.
- 각 데이터셋은 훈련 데이터(X_train, y_train)와 테스트 데이터(X_test, y_test)로 분리되어 있다고 가정합니다.
- CNV 데이터는 추가적인 전처리(세그먼트 생성, 가중 평균 계산 등)를 거쳐야 합니다.
- CNV 데이터 전처리:
create_chromosome_segments함수를 사용하여 Chromosome 조각 ID를 생성합니다.merged_data를 생성하고, 가중 평균을 계산합니다.wide_data를 생성하여 피벗 테이블 형태로 데이터를 변환합니다.- SMOTE를 적용하여 데이터 불균형을 해결합니다.
- 훈련 데이터와 테스트 데이터를 분할합니다.
- 랜덤 포레스트를 사용하여 초기 특징 중요도를 계산합니다.
- 데이터 불균형 처리 (SMOTE):
- 각 데이터셋의 불균형을 해결하기 위해 SMOTE(Synthetic Minority Over-sampling Technique)를 적용합니다.
- 특히, CNV 데이터는 SMOTE 적용 후 선택된 특징을 유지합니다.
개별 모델 구축 및 평가
- 모델 로드 및 특징 선택:
- 각 데이터 유형에 대해 사전 훈련된 최적의 모델(CNN, SVM, MLPClassifier, Logistic regression)을 로드합니다.
- 메틸화 데이터와 유전자 발현 데이터는 상호 정보량(mutual information)을 사용하여 특징 선택을 수행합니다.
- 단백질체 데이터는 t-검정을 사용하여 특징 선택을 수행합니다.
- CNV 데이터는 모든 특징을 사용합니다.
- 모델 재학습 및 예측:
- SMOTE로 처리된 훈련 데이터를 사용하여 각 모델을 재학습합니다.
- 테스트 데이터에 대해 각 모델의 예측 확률을 계산합니다.
predict_proba가 없는 모델의 경우decision_function을 사용하여 예측 확률을 추정합니다.- 특징 불일치 문제를 해결하기 위해 테스트 데이터를 훈련 데이터의 특징에 맞게 재정렬합니다.
- 개별 모델 성능 평가:
- 각 모델의 예측 결과를 기반으로 정확도, F1-score, 혼동 행렬, 분류 보고서를 출력합니다.
- ROC AUC 및 Precision-Recall 곡선을 시각화합니다.
- 각 모델의 F1-score를 저장하여 앙상블 가중치 계산에 사용합니다.
앙상블 모델 구축 및 평가
- 가중 평균 앙상블:
- 각 모델의 F1-score를 기반으로 가중치를 계산합니다.
- 가중치를 사용하여 각 모델의 예측 확률을 가중 평균합니다.
- 가중치 계산 시
** 0.5를 적용하여 가중치를 완화합니다.
- 최적 임계값 찾기:
- Precision-Recall 곡선을 사용하여 최적의 임계값을 찾습니다.
- F1-score를 최대화하는 임계값을 선택합니다.
- 앙상블 모델 성능 평가:
- 최적 임계값을 사용하여 앙상블 예측 결과를 클래스로 변환합니다.
- 앙상블 모델의 분류 보고서 및 ROC AUC를 출력합니다.
- 모델 저장:
- 앙상블 모델의 예측 결과 및 가중치를 저장합니다.
특징 중요도 분석
- 최적 모델 특징 중요도:
- 최적 모델(F1-score 기준)의 특징 중요도를 시각화합니다.
- 특징 중요도를 CSV 파일로 저장합니다.
- 선형 모델의 경우 계수를 사용하여 특징 중요도를 분석합니다.
결과 및 결론
본 글에서 제시된 앙상블 모델은 다중 오믹스 데이터를 효과적으로 통합하여 췌장암 예측 성능을 향상시켰습니다. 각 데이터 유형의 특성을 고려한 특징 선택 및 모델 구축, 그리고 성능 기반 가중 평균 앙상블은 모델의 예측력을 높이는 데 기여했습니다. 향후 추가적인 데이터 및 모델 개선을 통해 췌장암 예측 모델의 성능을 더욱 향상시킬 수 있을 것입니다.
CNV 모델 결과
Gradient Boosting - Final Evaluation: precision recall f1-score support
0 0.97 0.98 0.98 183 1 0.98 0.97 0.98 182 accuracy 0.98 365 macro avg 0.98 0.98 0.98 365 weighted avg 0.98 0.98 0.98 365 XGBoost - Final Evaluation: precision recall f1-score support
0 0.97 0.98 0.98 183 1 0.98 0.97 0.98 182 accuracy 0.98 365 macro avg 0.98 0.98 0.98 365 weighted avg 0.98 0.98 0.98 365 k-NN - Final Evaluation: precision recall f1-score support
0 0.98 0.99 0.99 183 1 0.99 0.98 0.99 182 accuracy 0.99 365 macro avg 0.99 0.99 0.99 365 weighted avg 0.99 0.99 0.99 365 앙상블 결과
Best threshold: 1.018946018995854
Ensemble Performance: precision recall f1-score support
0 0.94 1.00 0.97 51 1 1.00 0.82 0.90 17 accuracy 0.96 68 macro avg 0.97 0.91 0.94 68 weighted avg 0.96 0.96 0.95 68 ROC AUC: 0.9377
으로 나왔습니다.
This post is licensed under CC BY 4.0 by the author.