预测心脏病机器学习大作业_实验报告+代码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

In [5]:
1 countNoDisease = len(df[df.target == 0]) 2 countHaveDisease = len(df[df.target == 1]) 3 print("患有心脏病的比率: {:.2f}%".format((countNoDisease 4 print("没有患心脏病的比率: {:.2f}%".format((countHaveDis
2. 问题描述
近些年来,心血管疾病引发的死亡已经持续成为居民首位死亡原因,而且, 心脏病的患病人群也越来越年轻化。因此,心脏病的诊断与治疗已经成为医学研 究的重中之重。心脏病种类繁多,影响因素多样,如何提高心脏病的诊断效率已 经成为急需解决的问题。针对上述情况,我们将使用UCI机器学习数据库中的心脏 病数据集作为研究对象,分别采用逻辑回归算法,K-近邻算法,支持向量机,贝 叶斯分类器,决策树及随机森林建立心脏病诊断分类器,并对研究结果进行对比分 析,找到最优分类器。经过对分类器的参数进行网格搜索,进一步提高了分类器 的分类性能,从而有助于帮助医生对病情进行更加精准的诊断。
age sex cp trestbps chol fbs restecg thalach exan
0 63 1 3 145
233 1 0
150
0
1 37 1 2 130
250 0 1
187
0
2 41 0 1 130
204 0 0
172
0
3 56 1 1 120
236 0 1
178
0
4 57 0 0 120
3. 加载数据集
导入所需要的程序包和机器学习算法
localhost:8888/notebooks/build/.ipynb#
1/28
2020/6/30
In [40]:
.ipynb - Jupyter Notebook
1 !jt -t chesterish -f fira -fs 13 -cellw 90% -ofs 11 -d 2 #!jt -t grade3 -f fira -fs 13 -cellw 75% -ofs 11 -dfs 3 import numpy as np 4 import pandas as pd 5 import matplotlib.pyplot as plt 6 import seaborn as sns 7 8 from sklearn.linear_model import LogisticRegression 9 from sklearn.model_selection import train_test_split 10 from sklearn.metrics import accuracy_score 11 from sklearn.model_selection import GridSearchCV 12 from sklearn.linear_model import LogisticRegression 13 from sklearn.neighbors import KNeighborsClassifier 14 from sklearn.svm import SVC 15 from sklearn.naive_bayes import GaussianNB 16 from sklearn.tree import DecisionTreeClassifier 17 from sklearn.ensemble import RandomForestClassifier 18 19 import warnings 20 warnings.simplefilter('ignore') 21
3/28
wenku.baidu.com
2020/6/30
In [4]:
.ipynb - Jupyter Notebook
1 plt.rcParams['figure.figsize'] = (15, 6) 2 sns.countplot(x="target", data=df, palette="bwr") 3 plt.show()
localhost:8888/notebooks/build/.ipynb#
2/28
2020/6/30
In [2]:
.ipynb - Jupyter Notebook
读取数据集 1 df = pd.read_csv("heart.csv") # 2 df.head() #输出前5行数据
Out[2]:
2020/6/30
预测心脏病
1. 数据集介绍
UCI公开数据集-heart disease,属性信息如下:
1.age 2.sex 3.chest pain type (4 values) 4.resting blood pressure 5.serum cholestoral in mg/dl 6.fasting blood sugar > 120 mg/dl 7.resting electrocardiographic results (values 0,1,2) 8.maximum heart rate achieved 9.exercise induced angina 10.oldpeak = ST depression induced by exercise relative to rest 11.the slope of the peak exercise ST segment 12.number of major vessels (0-3) colored by flourosopy 13.thal: 3 = normal; 6 = fixed defect; 7 = reversable defect 14.target: No heart disease or heart disease
354 0 1
163
1
3. 分析,探索数据关系
患病比率
In [3]:
没患病人数 患病人数 1 df.target.value_counts() #
:138,
:165
Out[3]:
1 165 0 138 Name: target, dtype: int64
localhost:8888/notebooks/build/.ipynb#
相关文档
最新文档