本文是处理不平衡数据系列之二,在上一篇文章中,我们完成了对数据的预处理、可视化以及模型训练与预测等等工作,对数据有了整体的认识。在对实验数据进行预处理的时候,缺失值(missing values)和高相关性变量(variables with high correlation)是重点关注的对象。解决了这两个问题后,数据集样本不平衡的缺陷仍旧没有根除,所以针对数据分别进行了上采样、下采样以及SMOTE三种采样方法。显然,采样花费时间最久的SMOTE在模型中表现最佳,拿到了最高的准确率0.896,可是正当准备庆祝的时候,一个不幸的“消息”告诉我们:特异度(Specificity)只有0.254。也就是说,模型对预测收入高于5w的少数人群(minority class)表现不太好,这样的模型结果是不太令人满意的,能够拿到0.896的准确率自然也是在情理之中,毕竟正反样本的比例(96:4)摆在那里。为了克服这个缺陷,我们在R语言中采用了高效、性能强大的xgboost处理框架,最终得到理想的数据。
说句题外话,原本计划完成任务需花费10个番茄,实际耗时远远多出了预期的1倍多,整个五一就窝在实验室了。经过这个小小的项目后,深感“单兵作战”孤立无援的苦楚,唯有不断google,不断将写好的代码推倒重来,不断input、output······