重点说明,该章节为承上启下章节
一、前情提要
该数据集最初来自美国国立糖尿病与消化与肾脏疾病研究所。数据集的目的是基于数据集中包含的某些诊断指标,诊断性的预测患者是否患有糖尿病。从较大的数据库中选择这些实例受到一些限制。特别是,这里的所有患者均为皮马印第安人血统至少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后结果进行数据集划分。
3、训练数据集划分
这里我们的模型训练集和测试集的划分采用85%和15%;也就是85%的数据量用来做模型训练,另外15%用来做训练好的模型来进行验证,划分结果如下:
4、模型搭建
a、base数据模型效果
这里说明一下为什么要加入base数据模型效果。在搭建模型的时候我们需要有一个模型效果好坏的参照标准,由于没有其他模型或者方法可以作为对照,所以这里引入基础数据+基础模型来作为我们的模型base,后续所有的优化都是基于在这个baseline的基础上进行的。如果说经过一系列优化方法后未能够达到baseline水平的话,那说明优化的方法已经走远了,需要重新进行特征工程乃至需要重新进行数据清洗的工作;
没错,这里的做法就是把数据直接切分训练和测试集之后就搭建模型,不进行任何的数据清洗工作,我们使用LR(LogisticRegression)、RFC(RandomForestClassifier)、XGB(XGBClassifier来看一下效果:
通过上图发现,base模型效果整体表现较好。接下来我们的目标就是超越baseline。
b、特征工程后模型效果
激动的心,颤抖的手,一跑模型就知道有没有。上模型效果。
看到上面的结果我慌了。各项指标都很差,说明之前的特征工程完全没用呀。不仅没有正向效果,还在里面捣乱。
再来,我们通过模型验证一下数据清洗的有效性,看一下数据清洗后的效果:
果然,数据清洗后的效果仍然让人失望,说明之前尝试的数据清洗的方法对最终的模型并未产生正向效果。
到这里我们的工作无法往后继续开展下去了。需要重新回到最初的数据清洗环节进行其他的数据清洗方式,于此同时,需要伴随着模型效果的指标验证。
五、总结
第一轮的数据挖掘流程算是已经走完了。从结果来看印证了一句话“一顿操作猛如虎,只见效果原地杵”。同时也说明了我们数据挖掘的“垃圾进、垃圾出”的道理。
好了,不废话了。伴随着忧伤的旋律,我们开启下一章的重刷DC之旅;