Python是一种非常强大的编程语言,在大数据时代,可以帮助我们很好的应付复杂的数据,今天我们来介绍如何用Python来预测乳腺癌的案例,学会后,你可以应用到其他地方,比如通过一些数据预测某个人是否患心脏病,比如自动驾驶技术预测是否要刹车,是否能变道等。

在讲解案例之前,首先回顾我们去医院看病的场景,医生通过一系列的化验,检查,最终确定病症,我们可以将这些检查结果看做是患者的特征(feature)。比如一位患者的体内白细胞远远高出正常水平,那么可能的诊断结果就是细菌感染,患者尿液中的含糖量过高,那么很有可能患有糖尿病,那么切入主题,我们是否可以根据患者胸部细胞的大小、形态、细胞膜黏性等等特征来判断患者是否患有乳腺癌呢?下面我们来用Python实现预测!

一、数据集介绍

现在我们搜集了一些已有的正常人和乳腺癌患者的胸部细胞数据,数据集为UCI网站上的乳腺癌数据集,为二分类数据集,并经过部分处理。

数据分为训练集(breast-cancer_train.txt)和测试集(breast-cancer_test.txt),训练集用于训练模型,让模型能够具备检测乳腺癌的能力,测试集用于检测我们的模型是不是真的具备这样的能力,这里我们简单聊一下为什么一定要划分为训练集和测试集呢?我们回顾一下我们小学,初中考试,如果这次考试的试卷和上一次的一样,那么考试的结果能说明学生真正掌握了知识么?回答是否定的,同样我们为模型准备了两份数据,一份用于学习,另一份用来考试,当然数据集的划分不需要我们自己来做啦,因为UCI已经帮我们做好啦,样本数量分别为546,137。每一行的第一列为样本标签,其余各列为”列号:值”的格式,共包含10个特征。
小白都能看懂!Python机器学习预测乳腺癌疾病案例剖析!
小白都能看懂!Python机器学习预测乳腺癌疾病案例剖析!
对这些属性做一个简单的介绍,第一列2代表正常人,4代表乳腺癌患者,之后的1属性代表患者的就诊卡号,2-10属性分别代表乳腺细胞的细胞膜厚度、细胞大小、细胞形状、粘连程度、上皮细胞大小、细胞核、染色质、正常细胞核、有丝分裂状况。

我们对数据做一个简单的处理,把第一列的2改成0,4改成1,用0和1分别代表正常和乳腺癌患者,然后我们利用pandas做一个用户友好的展示形式,上代码:
小白都能看懂!Python机器学习预测乳腺癌疾病案例剖析!
二、模型介绍

我们即将采用逻辑回归的算法来训练模型。那么这里先来介绍一下逻辑回归。

通俗来说呢,逻辑回归是一种经典的处理二分类任务的方法,根据现有的特征来对事件发生的可能性做出预测,现实生活中存在的大量的二分类任务,例如根据云的形状,空气的湿度,风向,温度等信息我们是否可以预测在接下来的一个小时里是否会下雨。那么答案只有两种可能,下雨或者不下雨,而本篇我们的任务在于准确的预测乳腺癌患者完美符合逻辑回归的应用场景,刚刚我们已经介绍了我们的数据集,已经具备了乳腺细胞的各种特征,我们要根据这些信息对女性就诊者是否患有乳腺癌作出判断,而判断结果只有两种,患者或者是正常,因此逻辑回归非常适合。那么如何来使用逻辑回归呢,上代码:
小白都能看懂!Python机器学习预测乳腺癌疾病案例剖析!
简单解释一下:这里我们定义了一个变量为x,加入x中的每个参数分别代表细胞膜厚度、细胞大小、细胞形状、粘连程度、上皮细胞大小、细胞核、染色质、正常细胞核、有丝分裂状况等十个特征,再定义一个变量result,代表实际的检查结果,我们利用sklearn库封装好的逻辑回归模型LogisticRegression来处理数据,我们只要把已有的10个特征和真实的结果result输入给模型,调用model.fit方法那么就可以建立模型了,非常简单!

三、预测结果

接下来我们来介绍一下整体的训练过程哦,上代码:

1.读取数据集,采用pandas库
小白都能看懂!Python机器学习预测乳腺癌疾病案例剖析!
2.建立模型
小白都能看懂!Python机器学习预测乳腺癌疾病案例剖析!
3.训练模型
小白都能看懂!Python机器学习预测乳腺癌疾病案例剖析!
4.经过一些数据的训练我们来检测一下模型的效果吧
小白都能看懂!Python机器学习预测乳腺癌疾病案例剖析!
仔细看一下我们的预测结果,第一列的0和1分别代表数据集中的正常人和乳腺癌患者,precision代表准确率,也就是说我们预测为乳腺癌患者就诊者中有94%的确患有乳腺癌,我们预测为正常人的就诊者中有98%的确是正常人,recall代表在所有乳腺癌患者中有97%的患者被我们成功预测啦,f1-score代表precision和recall的调和平均数,support代表我们预测为乳腺癌或者正常的人数,下面三行代表平均值和加权平均值,可以看到我们的预测结果平均准确率达到了96%!也就是说96%的患者被我们成功预测啦!

更多干货内容,欢迎关注公众号:知了python

相关文章: