基于决策树的心脏病病情预测
一、数据描述
heart.csv数据集中包含14个特征变量,303个样本。利用该数据集,可以使用sklearn模块中的决策树分类器构建分类模型。具体的变量信息如下所示:

1、导入模块和数据集
# 导入模块
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import pydot
from sklearn import tree,model_selection,metrics
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
from sklearn.metrics import roc_auc_score,roc_curve
from sklearn.metrics import confusion_matrix
from sklearn.externals.six import StringIO
from IPython.display import Image
导入数据集并展示前五个样本。
data=pd.read_csv("./input/heart.csv")
data.head()

2、数据探索
首先,观察患有心脏病和未患心脏病的人数差异:
data["target"].value_counts()
Out:1 165
0 138
Name: target, dtype: int64
countNoDisease = len(data[data.target == 0])
countHaveDisease = len(data[data.target == 1])
print("Percentage of Patients Haven't Heart Disease: {:.2f}%".format((countNoDisease / (len(data.target))*100)))
print("Percentage of Patients Have Heart Disease: {:.2f}%".format((countHaveDisease / (len(data.target))*100)))
Out:Percentage of Patients Haven't Heart Disease: 45.54%
Percentage of Patients Have Heart Disease: 54.46%
患有心脏病和未患心脏病的人数分别为165和138,在调查样本中超过50%的人患有心脏病。决策树建模的目标应当是识别患有心脏病的人,提高对该类疾病的预防和治疗能力,从而提高人们整体的健康水平。
其次,观察样本数据中的性别人数差异:
countFemale = len(data[data.sex == 0])
countMale = len(data[data.sex == 1])
print

该文通过导入Python的sklearn库,利用heart.csv数据集构建决策树分类模型来预测心脏病。数据探索显示超过50%的样本患有心脏病,且男性患者比例较高。模型训练后,在测试集上得到77.05%的正确率,AUC为80.1%,表明模型有一定的预测能力。
最低0.47元/天 解锁文章
509





