sofasofa——震后修复预测

解决的问题是给每个灾后建筑提出不同的修复指导建议(无需处理、小规模修复、大规模修缮、重建)

数据下载地址

比赛提供了lightGBM和朴素贝叶斯两种公开的标杆算法。本文是基于公开的lightGBM标杆算法的基础上进行优化二次优化,目前排名40。

从标杆算法准度0.78856到0.79571

lightGBM的介绍


本文的优化步骤分为三步:

1、数据处理

2、特征选择

3、调参


(一)、数据处理

1.1数据结构

首先,让我先来了解一下数据结构。


优化第一步是要对数据进行一定处理,方便我们可以选择对应的数据或者特征值进行预测

【代码】


info()函数说明:

功能:用于给出样本数据的相关信息概览 :行数,列数,列索引,列非空值个数,列类型,内存占用

使用格式:data.info()

【分析】运行效果如下:有652936个观测值,没有缺失值


运行结构

接下来检查是否存在重复值

【代码】


 输出结构是0,不存在重复值。


基于标杆算法的思想,我们这里引入两个特征,floor_decline和height_decline,用地震前的高度(楼层)减去地震后的高度(楼层)所生成的新的变量。

定义

1.2异常值处理

地震前后的楼层高度应该是有变化的,或者是不变的,不可能存在地震后的楼层高度比地震前的楼层高度还要高,在此处表达为height_before>=height_after和floor_before>=floor_after,因此我对不满足条件的数据进行筛选并删除掉。

【代码】


运行结果如下


删除异常值结果

我们可以看到删掉了3360条数据。

我们也可以用均值或者众数中位数等数据来替代异常值,我此处选的的删掉异常值。大家也可以采取不同的方法进行尝试。data.loc()可以来进行处理

1.3离群值处理

【介绍】

在建模预测之前,我们先对离群值进行处理。根据正态分布的3sigma原则,我们将在3sigma之外的数据进行删除。3sigma原理可以简单描述为:若数据服从正态分布,则异常值被定义为一组结果值中与平均值的偏差超过三倍标准差的值。即在正态分布的假设下,距离平均值三倍(为标准差)之外的值出现的概率很小,因此可认为是异常值。样本数目足够大认为近似服从正态分布。

【代码】


通过代码我们删掉了异常值,我们查看一下删除前后的数值对比。

运行结果

1.4分类特征处理

由最开始的数据结构我们可以看出存在很多分类特征,比如ground_floor_type、land_condition等,我们可以采用独热编码的方式来对分类特征进行处理。(此处基于标杆算法的处理思路)

独热编码

【代码】

以position_attached为例,独热编码结果如下


独热编码结果



(二)、特征选择

2.1整体相关性分析

根据以上的数据处理之后,我们发现仍然存在很多的特征,那么这些特征是否都对我们的预测起到一定的作用呢?答案肯定不是。那么我们可以通过绘制热力图的方式来查看各个特征之间的相关性,删除相关性差的特征来进行更好地预测。

【代码】


运行结果如下

热力图

【分析】

1、我们可以看出district_id、floor_before等变量与y的相关性较弱,那我们将这些特征删除进行最后的特征选择。(此处选择删掉相关性小于0.2的特征)。

2、此处我们可以看出标杆算法所引入的height_decline和floor_decline的相关与预测结果相关性较高。

3、我们可以看出floor_after与height_after具有强烈的相关性。这和我们的常识相符,这两个预测变量存在强共线性,应该考虑删去一个。

【代码】


特征选择

基于以上的选择,我们最终选择了age、floor_decline、height_decline、height_after四个特征进行预测


(三)调参

首先我们来了解lightGBM的参数调整有哪些


lightgbm的参数

3.1用gridSearchCV调参

关于调参的细节可以查看链接:关于lightGBM和gridsearchcv的参数调整

首先我们要初始化我们的模型,即给lightGBM的参数传值,基于gridsearchcv来调参

【代码】


调参

我们处理的多分类问题,故此处选择的评价标准采用"accuracy",其他的相关参数在链接可以查看,此处不赘述。


多分类任务的评价标准

初始化完我们的模型之后,我们每次选择两个或者一个参数来进行调参。虽然不能保证达到全局最优,但是至少满足局部最优。这对我们的选取的调参组合就有了一定要求,尽量选择相互独立的参数为一个组来进行调参。


3.2调参结果

【介绍】lightGBM根本上来讲是决策树。可以固定树的不同深度,对其他参数调整,返回准确度最好的组合,作为最优参数组合。调参的大体思路大体分为7步针对12个参数进行调参。具体参考链接。以下是我的调参表:


调参表



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容