背景
心脏病是人类健康的头号杀手。全世界1/3的人口死亡是心脏病引起的。而我国,每年有几十万人死于心脏病。如果可以通过提取人体相关的体测指标,通过数据挖掘方式来分析不同特征对于心脏病的影响,将对预防心脏病起到至关重要的作用。本文提供真实的数据,并通过阿里云机器学习平台搭建心脏病预测案例。
数据集介绍
数据源为UCI开源数据集heart_disease。包含了303条美国某区域的心脏病检查患者的体测数据。具体字段如下表。
由于很多人问源数据,我再贴一遍出来:http://archive.ics.uci.edu/ml/machine-learning-databases/00000/
该链接下有个 heart.txt 的文本,数据源全是纯数字,我做过变更才出现下面贴的数据。
age 用年数表示的年龄 sex- 性别枚举(1 = 男性; 0 = 女性)
cp: 胸部疼痛的类型 (值为 ‘1’: 典型的心绞痛 值为 ‘2’: 非典型的心绞痛 值为 ‘3’: 非心绞痛的疼痛)
trestbpss: 静息血压 (准许入院的毫米汞柱(mm Hg))
chol: 以mg/dl为单位的血清类固醇
fbs: (空腹血糖 > 120 mg/dl) (1 = 是; 0 = 否)
restecg: 静息心电图结果 (值为 0: 正常 值为 1: 有ST-T波异常 (T波倒置和/或ST段抬高或压低>0.05 mV) 值为 2: 显示该标准下可能或明确的的左心室肥厚)
thalach : 达到的最大心率
exang : 是否运动诱发的心绞痛 (1 = 是; 0 = 否)
oldpeak : 由与相对休息有明显差异的运动诱导的ST段压低
slope : 运动高峰期的ST段斜率 (值为 1: 上斜 值为 2: 水平)
ca : 被透视荧光检查(flourosopy)标注颜色的大血管的数量 (0-3)
thal : 3 = 正常; 6 = 固有缺陷; 7 = 可修复缺陷
num : 心脏病的诊断 (冠状动脉疾病状态)
status:值为 0: < 50% 直径缩小 (意味着’没有疾病’) 值为 1: > 50% 直径缩小 (意味着’出现了疾病’)
先导入数据:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings('ignore')
%matplotlib inline
data = pd.read_table('F:\\data_load\\heat_dieses.txt', sep=' ',names = ['age','sex','cp','trestbps','chol','fbs','restecg','thalach',\
'exang','oldpeak','slop','ca','thal','status','style'])
data.head()