Advertisement

python心脏病预测案例_Python3机器学习实践:逻辑回归【实例:心脏病预测】

阅读量:

该模型能够对二元分类问题进行判断,在实际应用中常被用来处理二元分类问题的同时还可以通过多次的一对其他(One vs Rest)方法来处理多类别分类的问题

目前拥有270份健康指标数据涵盖了以下信息:受试者的年龄信息、性别资料以及最大心率数值,并记录了是否有心脏病病史以及其他相关健康状况的数据。我们的目标是通过逻辑回归模型来分析这些数据,并预测一个人是否患有心脏病。具体来说,模型会根据输入的数据输出两个可能的类别:1代表患心脏病(这里定义为类别1),而0则表示无病。需要注意的是,在这个分类任务中,我们将具有心脏疾病的人归类为类别1

对于逻辑回归来说,掌握Sigmoid函数是关键;它也被称作Logistic函数.其表达式和图像分别为:

通过图像可以更好的理解为什么被称为Logistic函数。

可以观察到该函数的输出范围在0至1之间。在分析单个样本的问题时(即针对每一条单独的数据),我们将该函数的预测结果视为某个特定类别的概率分布。具体来说,在这种情况下(即对于某一个单一的数据样本),如果我们判断它属于类别Ⅰ,则希望该模型计算出的结果尽可能接近于数值Ⅰ;反之,在这种情况下(即对于某个特定的数据样本),如果我们判断它不属于类别Ⅰ(而是类别Ⅱ),那么我们希望的是模型计算出的结果与数值Ⅰ之间的差异尽可能小。详细的多条样本说明见下文

下面阐述了如何评估一个分类器的效果:在评估过程中,通常将两种类别分别定义为正类和负类。其中我们较为关注的是正类,在本例中我们将没有心脏病的情况归为正类进行分析。

一、混淆矩阵

其中准确率(ar):预测类别正确的样本占所有样本的比例;

精确率(pr)/查准率即为:正确识别出的所有实际存在的异常样本与被系统归类为异常的所有样本数量之比

召回率(rr)/查全率:正类样本中预测正确的占所有实际正类的比例;

综合考量:F度量(Fa):精确率和召回率的加权调和平均值,其形式为:

当a=1时,F1是精确率和召回率的调和均值,

二、ROC曲线[二分类]

绘制ROC曲线,需要用到以下2个定义:

在全部真实为负类的数据集中,在误报相对于真实负类的比例上计算得出的结果。

True Positive Rate(TPR, 正真率):在所有真实属于阳性类别中的样本中, 被准确分类为阳性类别中的比例.

以逻辑回归为例,在模型中由于函数的输出范围在[ ]之间并不是严格的 或者 的结果,在这里面其实存在一个关键点[后续会详细阐述]。即当输入变量经过模型计算得出的结果达到或超过该关键点时,则预测结果归于类别 ;反之则属于类别 。对于每一个特定数值都与对应的 -曲线相关联 关系的具体表现将在后续部分详细探讨。具体而言按照从低到高排序后的 指标作为横坐标轴之后面提到的相关参数依次对应于纵坐标轴部分如图所示

实例:心脏病预测 下面给出阈值为0.5时,分类器得到的混淆矩阵:

通过计算可以得到:

源码下载:Anfany/Machine-Learning-for-Beginner-by-Python3​github.com

欢迎Fork,感谢Star!!!

微信直接搜索pythonfan,关注订阅号,获取更多实例和代码。

全部评论 (0)

还没有任何评论哟~