-
[머신러닝][Kaggle][Python] 개인 건강 데이터를 이용한 심부전 예측 모델1머신러닝 | 딥러닝 2022. 5. 22. 21:10
출처 : https://www.kaggle.com/datasets/andrewmvd/heart-failure-clinical-data
데이터 소개
Kaggle의 Heart Failure Prediction Dataset 이용
Dataset 구성
age: 환자의 나이 anaemia: 환자의 빈혈증 여부 (0: 정상, 1: 빈혈) creatinine_phosphokinase: 크레아틴키나제 검사 결과 diabetes: 당뇨병 여부 (0: 정상, 1: 당뇨) ejection_fraction: 박출계수 (%) high_blood_pressure: 고혈압 여부 (0: 정상, 1: 고혈압) platelets: 혈소판 수 (kiloplatelets/mL) serum_creatinine: 혈중 크레아틴 레벨 (mg/dL) serum_sodium: 혈중 나트륨 레벨 (mEq/L) sex: 성별 (0: 여성, 1: 남성) smoking: 흡연 여부 (0: 비흡연, 1: 흡연) time: 관찰 기간 (일) DEATH_EVENT: 사망 여부 (0: 생존, 1: 사망)
패키지 불러오기
import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns from sklearn.preprocessing import StandardScaler from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import classification_report from xgboost import XGBClassifier
Kaggle API 세팅
import os os.environ['KAGGLE_USERNAME'] = (Kaggle API Username) os.environ['KAGGLE_KEY'] = (Kaggle API Key)
Dataset 불러오기
!kaggle datasets download -d andrewmvd/heart-failure-clinical-data !unzip '*.zip' # 파일이름에 '.zip'이 포한된 파일 압축해제 # 데이터셋 할당 df = pd.read_csv('heart_failure_clinical_records_dataset.csv')
EDA
df.head(10) # 위의 10개 행 출력 df.info() # 각 열의 결측치, 데이터형, 행 수 출력 df.describe # 각 열의 수, 평균, 표준편차, 4분위수, 최대값, 최솟값 출력
연관성 파악을 위한 시각화
나이 - 사망 히스토그램
sns.histplot(x='age', data=df, hue='DEATH_EVENT', kde=True)
크레아틴키나제 - 사망 히스토그램
sns.histplot(x='creatinine_phosphokinase',data=df, hue='DEATH_EVENT',kde=True)
박출계수 - 사망 히스토그램
sns.histplot(x='ejection_fraction', data=df, bins=13, hue='DEATH_EVENT', kde=True)
혈소판 수 - 사망 히스토그램
sns.histplot(x='platelets', data=df, hue='DEATH_EVENT')
관찰 기간 - 사망 히스토그램
sns.histplot(x='time', data=df, hue='DEATH_EVENT', kde=True)
혈소판 수 - 크레아틴키나제 - 사망 조인트 그래프
혈소판 수와 크레아틴키나제 기준으로 사망자 분포 확인
sns.jointplot(x='platelets', y='creatinine_phosphokinase', hue='DEATH_EVENT', data=df, alpha=0.3)
# Dataset의 데이터중 사망자 데이터만 이용 sns.jointplot(x='platelets', y='creatinine_phosphokinase', data=df[df['DEATH_EVENT'] == 1])
박출계수 - 혈중 크레아틴 레벨 - 사망 조인트 그래프
박출계수와 혈중 크레아틴 레벨을 기준으로 사망자 분포 확인
sns.jointplot(x='ejection_fraction', y='serum_creatinine', data=df, hue='DEATH_EVENT')
# Dataset의 데이터중 사망자 데이터만 이용 sns.jointplot(x='ejection_fraction', y='serum_creatinine', data=df[df['DEATH_EVENT'] == 1])
'머신러닝 | 딥러닝' 카테고리의 다른 글
[머신러닝][Kaggle][Python] 개인 건강 데이터를 이용한 심부전 예측 모델2 (0) 2022.05.22