关于Pima数据集研究(4)--Model(模型初探)篇

重点说明,该章节为承上启下章节

一、前情提要

    该数据集最初来自美国国立糖尿病与消化与肾脏疾病研究所。数据集的目的是基于数据集中包含的某些诊断指标,诊断性的预测患者是否患有糖尿病。从较大的数据库中选择这些实例受到一些限制。特别是,这里的所有患者均为皮马印第安人血统至少21岁的女性。

二、内容

    本次主要承接之前的《关于Pima数据集研究(3)--FE(特征工程)篇》做后续探索研究,主要内容是关于Pima数据的EDA和DC结果进行针对性的数据清洗与深入探索。

三、研究方法

    本人是python系,本课题的研究方法与方案均是基于python进行扩展,研究工具包括Anaconda、panda、numpy、sklearn等第三方成熟开源框架。

    之前操作已在《关于Pima数据集研究(1)--EDA(探索性数据分析)篇》、《关于Pima数据集研究(2)--DC(数据清洗)篇》和《关于Pima数据集研究(3)--FE(特征工程)篇》中进行了详细介绍。

四、Model--模型搭建

1、特征选择    

    在建模型之前我们需要先验证一下特征的重要度,将一些特征重要度比较低的特征或重要度过高的特征剔除,主要是为了防止模型过拟合以及减少模型计算量;这里我们特征重要的选择方法为回归树进行特征重要度评分,根据评分再进行特征重要度筛选,重要度排序样例图如下所示:

特征重要度排序图

    根据上图我们大致能够发现,经过之前的特征工程后,产生了一些对模型无意义的特征,因此我们在模型训练之前将这类特征剔除,最终特征表格如下:

特征排序

    经过表格我们能够看出,之前的特种工程对模型的贡献度起到了一定的正向作用,但仍未发现贡献价值度特别高的特征。接下来我们使用特征重要度排名前10的特征开始后续的模型搭建。


2、数据标准化

    为什么需要进行数据标准化这里不进行介绍(可自行查找),这里我们使用的是min-max标准化,核心公式如下:

min-max标准化公式

  根据上述公式我们再来重新计算一下特征的值,样例如下:

min-max后结果

    我们根据min-max后结果进行数据集划分。


3、训练数据集划分

    这里我们的模型训练集和测试集的划分采用85%和15%;也就是85%的数据量用来做模型训练,另外15%用来做训练好的模型来进行验证,划分结果如下:

模型训练数据集划分

4、模型搭建

a、base数据模型效果

    这里说明一下为什么要加入base数据模型效果。在搭建模型的时候我们需要有一个模型效果好坏的参照标准,由于没有其他模型或者方法可以作为对照,所以这里引入基础数据+基础模型来作为我们的模型base,后续所有的优化都是基于在这个baseline的基础上进行的。如果说经过一系列优化方法后未能够达到baseline水平的话,那说明优化的方法已经走远了,需要重新进行特征工程乃至需要重新进行数据清洗的工作;

    没错,这里的做法就是把数据直接切分训练和测试集之后就搭建模型,不进行任何的数据清洗工作,我们使用LR(LogisticRegression)、RFC(RandomForestClassifier)、XGB(XGBClassifier来看一下效果:

base指标

    通过上图发现,base模型效果整体表现较好。接下来我们的目标就是超越baseline。

b、特征工程后模型效果

    激动的心,颤抖的手,一跑模型就知道有没有。上模型效果。

特征工程后模型指标

    看到上面的结果我慌了。各项指标都很差,说明之前的特征工程完全没用呀。不仅没有正向效果,还在里面捣乱。

    再来,我们通过模型验证一下数据清洗的有效性,看一下数据清洗后的效果:

数据清洗后模型指标

    果然,数据清洗后的效果仍然让人失望,说明之前尝试的数据清洗的方法对最终的模型并未产生正向效果。

    到这里我们的工作无法往后继续开展下去了。需要重新回到最初的数据清洗环节进行其他的数据清洗方式,于此同时,需要伴随着模型效果的指标验证。

五、总结

    第一轮的数据挖掘流程算是已经走完了。从结果来看印证了一句话“一顿操作猛如虎,只见效果原地杵”。同时也说明了我们数据挖掘的“垃圾进、垃圾出”的道理。    

    好了,不废话了。伴随着忧伤的旋律,我们开启下一章的重刷DC之旅;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。