关于Pima数据集研究(5)--重刷DC(数据清洗)篇

一、前情提要

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

二、内容

    本次主要承接之前的《关于Pima数据集研究(4)--Model(模型初探)篇》做后续探索研究,主要内容是关于Pima数据的DC问题进行针对性的数据清洗重构与深入探索。

三、研究方法

    本人是python系,本课题的研究方法与方案均是基于python进行扩展,研究工具包括Anaconda、panda、numpy、sklearn等第三方成熟开源框架。之前操作已在《关于Pima数据集研究(4)--Model(模型初探)篇》中进行了详细介绍。

四、重刷数据清洗(DC)

1、回顾

    根据上一章模型初探的结果来看,之前做的数据清洗工作并不好。因此该章节主要介绍与之前DC不同的探索方式方法。首先回顾一下之前数据清洗都用了哪些方法:

    a、Pregnancies:将数据通过IQR进行了阈值限制,并将超出阈值的数据进行拉回操作;

    b、Glucose:通过IQR计算结果,将为0的数据拉回下限值;

    c、BMI:将为0的数据通过中位数替换;

    d、BloodPressure:将为0的数据通过回归算法替换;

    e、SkinThickness:将为0的数据通过随机插补法进行数据替换;

    f、Insulin:将为0的数据通过定向随机插补法进行数据替换;

    g、Age、DiabetesPedigreeFunction、Outcome:均未进行处理;

    通过之前的方法,我们来看一下可能存在哪些问题:

    a、不同目标的数据分布是否相同,如果不相同,是否能够统一进行处理?

    b、修复数据占比超过20%的有SkinThickness、Insulin,在统计学上需修复数据占该特征的20%以上则失去该数据意义,那强行修复后是否正有效?

    c、随机插补法中位数填补方法和保留原数据,哪个对最终效果更有效?

2、应对策略

    a、比赛使用高分策略

    这里我们先来看一下在kaggle上常用的高分方法,目标分类中位数回填,我们来看一下该方法的情况。

目标分类中位数

    通过目标分类中位数数据来看,两个类别的中位数除了在Insulin上无差别以外,其他所有指标均有差异,且部分特征还存在较大差异,例如:Glucose、Age等。若我们通过不同目标分类的数据来进行异常数据填补的话,将能够更有效的捕捉到不同分类的数据分布。我们来看一下该方法的模型效果前后对比:

base模型效果
目标分类中位数填补效果

    没错,我们看到了,相比之前的base模型,效果要高出不少。这么来看的确获得了相对较大的收益。但是往往“理想很丰满,现实很骨干”,如果通过该方法来进行数据修复的话,就会出现一个数据挖掘领域最常见的“数据泄漏”或“数据穿越”问题。说白了,也就是我们站在了未来的角度来预测已经发生的现象。

    我们说明一下为什么不能使用该方法。在参加比赛中,为了获得高分经常会采用类似的方法,这样能够让我们的数据与目标更加贴合,最终的模型评分效果会更高。但是,在实际工作操作中,如果我们同样遇到了数据异常和目标未知的时候,该方法就变成了一个双向悖论的情况而无从下手。该现象在数据清洗的时候经常会发生,我们一定要避免这类问题。


    b、实际生产中策略

    通用的比赛策略在实际生产中不能用了。那我们通过传统的数据清洗策略来进行数据处理。我们秉着“发现异常,必须处理”的原则开展工作,我们先来看一下需要处理的数据都有哪些:

缺失数据占比

    这里我已经将需要处理的数据转为了缺失值,上表显示的为缺失值数量和相应的占比情况。接下来我们通过不同的数据清洗方法来比较一下那种方法对最终的模型更有效:

    1)、中位数替换:使用中位数替换缺失值

中位数替换模型效果

    2)、均值替换:使用均值替换缺失值

均值替换模型效果

    3)、随机插补:

    这里我们仍然延用之前提到的随机插补法来进行数据修复,再根据修复后的数据进行预测。由于每次修复都是随机且不可控的,因此这里不再展示数据分本,直接上效果:

随机插补法模型效果

    从效果来看,该方法对于XGB这样的树模型有较好的效果。


    4)、模型预测(该数据集最有效方法):

    这里借助于之前kaggle比赛的套路。只不过我们通过无异常的所有数据先预测一个预测模型,模型效果如下:

XGB预测效果

根据模型的预测结果反向观察中位数,我们先来观察一下原始数据的中位数:

原始数据中位数

我们再来看一下模型预测后的中位数:

XGB预测效果中位数

根据预测修复后的所有数据再搭建模型来进行最终模型预测,效果如下:

预测中位数填补后模型效果

    从结果来看,这类方法对于随机森林这样的树模型有较好的效果;


   5)、异常删除:将缺失值直接剔除

异常删除模型效果

    6)、保持不变:

base效果

经过上述6中对比实验来看:

1、随机插补法和XGB预测后修复法对于模型有较好的效果,但其中随机插补法每次效果不稳定;

2、base版本的效果处于整体实验中等水平;

3、直接暴力中位数或均值替换对于模型来说出现负向效果;

4、暴力剔除法对于多模型来说不友好,仅对于随机森林这类的树模型不会产生影响。

    根据总结发现,我们后续使用XGB预测后修复法来开展后续特征工程工作。这里说明一下,随机插补法每次产生的修复数据均是该特征现有值抽取后修复,每次产生结果不稳定,因此暂不采用此方法来进行后续工作;


五、重刷特征工程(DC)

    在开启特征工程之旅之前,我们线来看一下通过预测中位数填补后的模型效果:

模型预测中位数填补效果

    根据效果来看,XGB有了相对提升,随机森林保持不变,罗辑回归出现了下降。这里进一步证明了特征对于我们的LR模型来说影响性较大;不过如果我们看recall指标的话,整体都出现了较大的提升。特别是在随机森林的模型效果上,有较大的提升效果;对于我们的样本不均衡的数据来说,召回指标提升更有效;

    之前我们只是加入了预测后的分类方向计算各个特征的中位数的特征,而这里我们考虑把最开始用于预测回填中位数的模型预测分类结果纳入做特征考虑,我们看一下模型效果:

加入预测值特征后效果

    根据结果我们看到,三个模型的acc都有较为明显的提升,并且召回的效果也有了较为明显的特征。说明这一个特征对于最终的模型有较为正面的影响;

    我们之前采用过聚类的方案进行特征工程,但仅是单特征的聚类,且效果不佳,这里我们直接采用除目标意外的所有修复后特征来进行聚类,作为一列新特征加入到后续工作中。我们还是使用之前提到过的kmeans来进行聚类工作,先看看算法给我们推荐的K数量,效果如下:

手肘方法k线图

    通过上图我们发现,最大拐点出现在k=3的位置,但效果不是太明显,下面我们通过轮廓系数来观察一下;

轮廓系数法k线图

    通过上图进一步证实我们的k=3是最佳选择,因此我们除目标外的所有特征聚类数为3是最佳效果,我们再来观察一下加入聚类特征后的模型效果:

加入聚类模型效果

    根据效果来看,加入聚类特征对与树模型来说并不会产生影响,但对于LR模型来说,效果会有小幅度提升。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,635评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,628评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,971评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,986评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,006评论 6 394
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,784评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,475评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,364评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,860评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,008评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,152评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,829评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,490评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,035评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,156评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,428评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,127评论 2 356

推荐阅读更多精彩内容