概述
本周是高级实训第一个项目的最后一周,根据上次课上讨论的内容进行了一些微调和改进,并结合前几次周报简要梳理了整个比赛的完成情况。
数据预处理
首先需要对数据集中各个特征的意义、类型、取值分布有一个大致的了解,并对数据进行预处理,解决缺失、噪声、冗余、不一致等问题,使数据集能够更好地被模型利用。不同模型对这些数据集的缺陷的敏感度不同,其处理方式也可能有所不同。
上两图是训练集、测试集数据的概况,可以看到除n系列匿名特征外,缺失量并不是很大。对缺失数据的填充有很多种,对这个数据集,没有证据表明id相邻的数据条目有相关性,因此未使用相邻值填充的方法。特征类型可分为数值特征和类别特征,对类别类特征,可使用众数填充,这基于在不知道其他信息的情况下,一个缺失值的取值最可能是该特征出现频次最高的取值,而对连续数值类的特征,可采用平均值填充,可使误差(填充值与真实值的差)的期望达到最小。
特别地,对一些类型为int或float的特征,其取值数量较少,且多集中与0到10之间的整数(如n0等特征),我把它们当做类别特征处理: