点击上方“Datawhale”,选择“星标”公众号
第一时间获取价值内容
为了帮助更多竞赛选手入门进阶比赛,通过数据竞赛提升理论实践能力和团队协作能力。DataFountain 和 Datawhale 联合邀请了数据挖掘,CV,NLP领域多位竞赛大咖,将从赛题理解、数据探索、数据预处理、特征工程、模型建立与参数调优、模型融合六个方面完整解析数据竞赛知识体系,帮助竞赛选手从0到1入门和进阶竞赛。
下面是大咖分享
???
数据挖掘方向
杰少 ID:尘沙杰少
简介:南京大学计算机系毕业,现任趋势科技资深算法工程师。20多次获得国内外数据竞赛奖项,包括KDD2019以及NIPS18 AutoML等。
进行数据预处理依赖的因素有很多,我个人认为数据预处理也可以分很多情况,最常见的可以分为下面三种情况:
第一种是最常见的也是都会进行的,错误数据的处理,这种数据很多可以直接通过EDA的方式就能发现,例如统计人的身高时,我们发现有的人的身高是10米,那这种很明显就是错误的数据;还有天池之前的医疗比赛,有些血压数据明显是仪器错误等造成的,而针对这些错误的数据,我们就需要对其进行清洗,删除或者将其当缺失值等;
第二种对数据预处理往往是模型的原因,例如我们采用线性类的模型,那么往往需要对类别特征进行特殊的处理,连续的值也往往需要进行简单的Normalize等,方便模型更好的吸收数据;这个在kaggle的Minist比赛中也很常见;如果我们用的是GBDT类的模型,例如LGB等,那么我们可能就需要考虑特征的相对大小等问题,而缺失值我们就不需要进行过多的处理等;
第三种是方便特征的构建等,我们需要对数据的结构进行某些变换,例如KDD19年的比赛,我们需要将结构性的文本类数据进行展开,这样不管是提取特征还是其他操作都会方便很多;还有时间序列类的问题,我们往往将数据进行pivot操作,将其展开为一行对应某个用户对应的历史消费等信息。
王贺 ID:鱼遇雨欲语与余
简介:武汉大学硕士,2019年腾讯广告算法大赛冠军选手,京东算法工程师,一年内获得两冠四亚一季的佳绩。
数据预处理主要内容包括数据清洗,数据集成,数据变换和数据规约。
数据清洗主要删除原始数据中的缺失数据,异常值,重复值,与分析目标无关的数据。
处理缺失数据
处理缺失数据处理缺失数据有三种方法,删除记录,数据插补和不处理。这里主要详细说明缺失值的删除。
删除
处理缺失值要事先知道数据缺失的原因,比如用户调查问卷里的缺失值是因为被调查者回答问题时漏掉了一个问题选项,那么这个缺失值就代表了该用户没有回答该问题,而信用卡激活日期的缺失,不能表明是丢失了信用卡的激活日期,按照系统的计算逻辑来看,凡是还没有激活的信用卡,其激活日期都记为缺失的,即NULL,还有的缺失是因为系统本身的计算错误造成的,比如某个字段除以零,某个负数取对数等错误的数学运算直接删除带有缺失值的某行数据,这种方法删除方法的好处就是删除后得数据都是完整的数据,不存在缺失数据,但是最大的不足之处就是如果缺失数据存在很大的比例,删除后会导致后面用于挖掘的数据过少,不足于进行有效的分析,其次直接删除可能会误删掉重要的信息。直接删除带有大量缺失值的变量,这种方法只针对那些缺失值占比超过20%或更多的变量,另外是否删除要结合其商业应用价值,比如删除信用卡未激活日期的这个变量,这个变量代表该用户属于未激活卡的用户群体,是带有一定商业价值的,那么如果删除会因此得不偿失。
缺失值替换
分类型变量:用众数或者一个新的类别去代替缺失值对于次序型变量和区间型变量而言,用中间值,众数,最大值,最小值,平均值,新定义的其他值来代替缺失值,这样做的好处在于简单直观,有依据,比如用众数代替,众数本身说明该值出现的几率最大。
对缺失值进行赋值
这种方法将通过例如回归模型,决策树模型,贝叶斯定理等去预测缺失值的最近替代值,也就是把缺失数据所对应的变量当做目标变量,把其他的输入变量当做自变量。为每个缺失值赋值的字段分别建立预测模型。从理论上看,该种方法最严谨,但是成本较高。是否采用该方法要与业务背景相结合。
数据转换由于原始数据,在此主要是指区间型变量的分布不光滑(或有噪声),不对称分布,也使得数据转化成为一种必需的技术手段数据转换主要分为以下四大类:
1. 产生新变量
2. 改善数据分布特征,主要针对不对称分布的转换
3. 区间型变量的分箱转换
4. 数据标准化,主要是0,1均值化产生新变量:根据原始数据,通过数学公式推导,产生更加具有商业意义的新变量。
比如对用户的出生年月日进行处理,把当前的年月日减去用户出生年月日,得到一个新的字段’用户年龄’常用的衍生变量有:用户月均,年均消费金额和消费次数家庭人均年收入用户在线交易终止的次数占用户在线交易成功次数的比例用户下单付费的次数占用户下单次数的比例用户在制定商品类目的消费金额占其他全部消费金额的比例。
改善数据分布特征
通过取对数,开平方根,取倒数,开平方,取指数的方法使得不对称分布的数据呈现(或近似)正态分布,并形成倒钟形曲线。
分箱转换
分箱转换就是把区间型变量转换成次序型变量,转换目的如下:降低变量的复杂性