这次的任务依旧是我不熟悉的领域,因此老老实实地跟着教程走一步。首先,特征工程指的是对数据的特征进行处理,包括处理异常值和缺失值,特征分箱、增强特征等工作。
这次的学习目标是:
- 学习特征预处理、缺失值、异常值处理、数据分桶等特征处理方法
- 学习特征交互、编码、选择的相应方法
首先,在上一个任务中我们已经找出了所有缺失值,在这里用平均数填充连续型数值,用众数填充目录型数值。
接下来,将所有时间格式特征转化为标准时间格式,同时将"1 year“这种对象特征也转化为标准时间格式。
然后是一些目录型的对象特征,我们通过建立映射将字符串转化为数值特征。
接下来,是如何检测并处理异常值。
这里用了均方差和箱型图进行检测。
1. 在统计学中,如果一个数据分布近似正态,那么大约 68% 的数据值会在均值的一个标准差范围内,大约 95% 会在两个标准差范围内,大约 99.7% 会在三个标准差范围内。所以根据我们的要求,可以选择一个范围,比如三个标准差范围,然后将范围外的值视为异常值。
2. 四分位数会将数据分为三个点和四个区间,从箱型图上也能划分出异常值。
然后是特征分桶,从模型效果上来看,特征分箱主要是为了降低变量的复杂性,减少变量噪音对模型的影响,提高自变量和因变量的相关度。从而使模型更加稳定。具体操作即将连续变量离散化;将多状态的离散变量合并成少状态。通过分桶,我们能更好地处理异常值、缺失值,提高业务的可解释性。
分桶有几种策略,如固定宽度、分位数、卡尔分箱等。
特征交互即用原有特征产生新的特征,特征编码即对特征进行归一化,去除相关性等,最后再进行特征选择,就完成了最基础的特征工程的任务了~