数据可视化案例-基于决策树的心脏病病情预测

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

一、数据描述

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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力找学上ing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值