데이터 마이닝 개인 프로젝트 수행 - 뇌졸증 환자 예측 모델 구축
-
뇌졸증은 뇌에 혈액을 공급하는 혈관이 막히거나 터져서 뇌 손상이 오고 그에 따른 신체장애가 나타나는 질환임
-
뇌졸증 증상의 반복으로 인해 뇌가 손상받게 되면 치매로 이어질 수도 있음
-
치료가 늦어지면 뇌 손상이 광범위해서 혈관이 열리더라도 증상 호전이 어려움
-
따라서 뇌졸증을 조기에 예방하고 발견하는 작업이 매우 중요함
-
위험인자
- 고혈압, 당뇨병, 심장병, 일과성 허혈증, 뇌졸증의 과거력, 고지혈증
-
생활습관
- 흡연, 과음, 운동부족, 비만, 과도한 스트레스
- Stroke datset은 성별, 연령, 다양한 질병, 흡연 상태와 같은 입력 매개변수를 기반으로 환자가 뇌졸증에 걸릴 가능성이 있는지를 예측함
- 데이터의 각 행은 환자에 대한 정보를 제공(4,908개)
- 총 12개의 속성으로 구성
- 설명 변수 : 11개
- 종속 변수 : 1개
- 불필요한 설병변수 제거 : 식별자(id), 결혼 여부(ever_married), 직업 형태(work_type), 주거 형태(residence_type)
- 일부 범주형 변수에 대한 one-hot 인코딩을 적용 → 흡연 상태(smoking_status), 성별(gender)
- train_x_data, train_y_data, test_x_data, test_y_data split → 6:4
- 종속 변수에서 뇌졸증을 앓는 사람들의 데이터가 매우 적음 → 오버샘플링(over sampling) 적용
- Stats model → Logit()
- 모델의 관점에서 동일한 3,760개의 test_set으로 분류를 진행한 결과 ① Random Forest, ② Decision Tree Classifier, ③ Logistic Regression 순서로 성능이 우수함
- Logistic Regression : age(나이), hypertension(고혈압), avg_glucose_level(혈액의 평균 포도당 수치), smoking_status(흡연 여부)
- Decision Tree Classifier : age(나이), bmi(체질량 지수), avg_glucose_level(혈액의 평균 포도당 수치), smoking_status(흡연 여부)
- Random Forest : age(나이), bmi(체질량 지수), avg_glucose_level(혈액의 평균 포도당 수치), smoking_status(흡연 여부)
→ 모델에서 공통적으로 age, avg_glucose_level, bmi가 중요한 변수로 도출되었으며, 나이, 포도당 수치, 체질량 지수와 같이 생활습관과 관련된 변수들이 뇌졸증 발생 여부와 밀접하게 관련됨을 확인하였으며, 이외에도 공통으로 확인된 생활습관 변수로는 흡연 여부가 존재
→ EDA에서는 지병과 관련된 hypertension(고혈압), heart_disease(심장병)의 변수가 중요 변수로 선택되었으나, 해당 데이터 셋에서는 상대적으로 뇌졸증과 큰 관련성이 없음
→ 결론적으로 뇌졸증 발생 여부의 경우 환자가 가지고 있는 지병의 영향보다는 생활습관이나 자연현상과 요인들이 밀접한 관련성이 있음