Skip to content

2022년 1학기 개인 프로젝트 : 뇌졸증 환자 예측 모델·분석

Notifications You must be signed in to change notification settings

shinho123/Data-mining-project---stroke-prediction

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 

Repository files navigation

Data-mining-project---stroke-prediction

데이터 마이닝 개인 프로젝트 수행 - 뇌졸증 환자 예측 모델 구축

수행기간 : 2022.03.03 ~ 2022.05.24

분석 데이터 : Stroke dataset

image

  • 뇌졸증은 뇌에 혈액을 공급하는 혈관이 막히거나 터져서 뇌 손상이 오고 그에 따른 신체장애가 나타나는 질환임

  • 뇌졸증 증상의 반복으로 인해 뇌가 손상받게 되면 치매로 이어질 수도 있음

  • 치료가 늦어지면 뇌 손상이 광범위해서 혈관이 열리더라도 증상 호전이 어려움

  • 따라서 뇌졸증을 조기에 예방하고 발견하는 작업이 매우 중요함

  • 위험인자

    • 고혈압, 당뇨병, 심장병, 일과성 허혈증, 뇌졸증의 과거력, 고지혈증
  • 생활습관

    • 흡연, 과음, 운동부족, 비만, 과도한 스트레스

Stroke data info

image

  • Stroke datset은 성별, 연령, 다양한 질병, 흡연 상태와 같은 입력 매개변수를 기반으로 환자가 뇌졸증에 걸릴 가능성이 있는지를 예측함
  • 데이터의 각 행은 환자에 대한 정보를 제공(4,908개)
  • 총 12개의 속성으로 구성
    • 설명 변수 : 11개
    • 종속 변수 : 1개

EDA(1/11) - dataset preview(1/2)

image

EDA(2/11) - dataset preview(2/2)

image

EDA(3/11) - statistical info

image

EDA(4/11) - numerical distplot(1/3)

image

EDA(5/11) - numerical boxplot(2/3)

image

EDA(6/11) - numerical scatterplot(3/3)

image

EDA(7/11) - categorical count plot(1/3)

image

EDA(8/11) - categorical hue(2/3)

image

EDA(9/11) - categorical violin plot(3/3)

image

EDA(10/11) - before processing missing values(1/2)

image

EDA(11/11) - after processing missing values(2/2)

image

데이터 전처리

  • 불필요한 설병변수 제거 : 식별자(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) 적용

모델 구축 : Logistic regression, Decision tree classifier, Random forest

Logistic regression(1/2)

image

Logistic regression(2/2)

image

  • Stats model → Logit()

Decision tree(1/2)

image

Decision tree(2/2)

image

Random forest(1/2)

image

Random forest(2/2)

image

Conclusion

모델

  • 모델의 관점에서 동일한 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(심장병)의 변수가 중요 변수로 선택되었으나, 해당 데이터 셋에서는 상대적으로 뇌졸증과 큰 관련성이 없음

→ 결론적으로 뇌졸증 발생 여부의 경우 환자가 가지고 있는 지병의 영향보다는 생활습관이나 자연현상과 요인들이 밀접한 관련성이 있음