본문 바로가기
  • 데이터에 가치를 더하다, 서영석입니다.
연구 활동/폐암 예측 프로젝트

[2022 동계 인턴십]암예측 최종

by 꿀먹은데이터 2022. 2. 20.

https://honeyofdata.tistory.com/30

 

[2022 동계 인턴십]암예측 6 - 발표 및 문제점에 대한 피드백

https://honeyofdata.tistory.com/29 [2022 동계 인턴십]암예측 5 이번에는 데이터를 총 3분류로 나누어서 진행했다. data1은 암 관련 phenotype ( 예를 들어 성별, 음주량, 흡연량, 나이 등등)만 진행했을 때의 A..

honeyofdata.tistory.com

위 포스팅에서 받은 피드백을 바탕으로 진행하였고 최종적으로 마무리할 수 있었다.

 

 

연구주제 및 내용

부스팅 기법을 사용하여 암 질병률의 연관성을 분석 및 예측한다.

각종 질병 중 ‘LUNG’(폐암)을 선택하여 연구를 진행했다.

데이터 전처리

가족력/과거력과 LUNG과의 관계

위 feature들은 phenotype에서 가져온 feature들로 가족력과 과거력을 나타내는 변수이다.

변수값으로는 1 혹은 NaN으로 NaN의 경우 0이라고 두고 진행하였다.

2nd Column을 봤을 때, 분모는 PCAN00/FCAN00이 1일 때의 전체 데이터 수이고, 분자는 그 중 LUNG이 1인, 양성일 때의 데이터 수이다. 

보시다시피 PCAN80은 13/39(0.33)으로 높은 확률을 보이는 것으로 보아 중요한 변수임을 알 수 있었고, FCAN80 또한 0.053이지만 5%라는 것을 봤을 때, 중요한 변수라고 채택하여

PCAN80과 FCAN80을 포함시켜 진행하였다.

 

#BMI 변수 만들기
data1_HT=data1['HT_B']
data1_WT=data1['WT_B']
data1_BMI=data1_WT/(data1_HT*data1_HT)*10000
data1_BMI

데이터 전처리 과정에서 중요한 피처를 선정하는 과정은 다음과 같다.

  1. 결측값이 많은 피처 제거 (단순 결측값이 많기 때문 - 데이터의 50%이상이 결측값으로 나오는 피처)
  2. LUNG과의 상관관계, 연관성이 적은 피처 제거
  3. 흡연량, 음주량 제거 (흡연 여부, 음주 여부로 판정하는 것이 옳다고 생각)
  4. FVC와 FEV1은 폐와 관련된 피처이고 둘은 비슷한 양상을 보이기 때문에 FEV1 제거
  5. 가족력과 과거력 데이터 PCAN00,FCAN00에서 필요한 피처 추출
  6. BMI 변수 만들기

데이터 피처 수

1. train과 test 데이터는 8:2로 진행하였다.

   1) FVC 존재 시 ,데이터의 수는 총 8763개, 그 중 LUNG 개수는 232개 약 0.026%

     - train 데이터 7010개 , test 데이터 1753개

   2) FVC 존재 아닐 시 , 데이터의 수는 총 13505개 , 그 중 LUNG의 개수는 350개 약 0.026%

     - train 데이터 10804개, test 데이터 2701개

2. Lasso 사용

   1) FVC 존재 시, 피처의 수 330개(SNPs)+24개(phenotype) 총 354개

   2) FVC 존재 아닐 시, 피처의 수 401개(SNPs)+24개(phenotype) 총 424개

 

모델링 작업

모델링은 RandomForestClassifier, DecisionTreeClassifier, KNeighborsClassifier, AdaboostClassifier, XGBClassifier, LGBMClassifier로 총 6개의 모델을 사용했다.

Optuna(Automl 기법)을 통해 분류 모델의 파라미터를 자동적으로 지정하여 AUC를 높였다.

GridSearchCV 보다 낫다고 생각

Automl 기법

보다 신속하고 빠른 성능으로 최적의 파라미터 찾음.

 

Statistical and Deep Learning Methods

최종 Statistical and Deep Learning Methods

결론은 XGBoost0.761,0.767로 가장 높은 예측치를 보이는 모델임을 볼 수 있었고, FVC가 존재하지 않는 피처에서 가장 높은 AUC (0.767)을 얻음을 확인할 수 있었다.

 

'파이썬 머신러닝 완벽 가이드'에서 위스콘신 유방암 예측에서도 XGBoost를 쓴 것을 볼 수 있는데,

역시나 XGBoost를 사용한 것이 가장 높음을 볼 수 있었다. 

 

이로써 2022 동계 인턴십의 최종 모델은 xgboost로 0.767로 높은 auc값을 얻음과 동시에 끝이 났다.

후속연구

Deep learning(Classification)이나 AutoEncoder를 이용한 방법으로 후속연구를 진행하고, 피쳐들의 정교함을 추가하게 된다면 AUC를 높일 수 있지 않을까하는 바람이 있다.