一、异常处理
数据集中有时会包含一个或多个数值异常大或异常小的值,这样的计算值称为异常值(outlier)。
(3sigma)原则:取值超过均值3倍标准差,可以视为异常值
- 依据小概率事件发生可能性“不存在”
- 数据最好近似正态分布
箱线图
上个task中已经提到了怎么看箱型图。我们可以通过程序设置将超出标准的异常值删除。
BOX-COX
当原始数据的分布是有偏的,不满足正态分布时,可通过 BOX-COX 转化,在一定程度上修正分布的偏态。转换无需先验信息,但需要搜寻最优的参数λ。
长尾截断
二、归一/标准化
本质上都是一种线性变换:
- 归一化:缩放仅与最大最小值差别有关,取值在0-1
- 标准化:缩放与每个点都有关系,通过方差体现
如果对输出结果范围有要求或数据较稳定,不存在极端的最值,用归一化;
如果数据存在异常值和较多噪音,用标准化。
针对幂律分布,可以采用公式:
三、数据分桶
简单地说,分箱就是将连续变量离散化,将多状态的离散变量合并成少状态。
1.将样本在连续特征上取值从小到大排列
2.从小到大依次选择分桶边界,其中分桶数量以及每个桶大小 都是超参数
3.根据样本特征取值划分为相应桶内
等频分桶
区间的边界值要经过选择,使得每个区间包含大致相等的实例数量。比如说 N=10 ,每个区间应该包含大约10%的实例。
等距分桶
从最小值到最大值之间,均分为 N 等份。 如果 A,B 为最小最大值, 则每个区间的长度为 W=(B−A)/N , 则区间边界值为A+W,A+2W,….A+(N−1)W 。这里只考虑边界,每个等份的实例数量可能不等。
Best-KS 分桶
1.将特征值值进行从小到大的排序。
2.计算出KS最大的那个值,即为切点,记为D。然后把数据切分成两部分。
3.重复步骤2,进行递归,D左右的数据进一步切割。直到KS的箱体数达到我们的预设阈值即可。
Best-KS分箱的特点:
4.连续型变量:分箱后的KS值<=分箱前的KS值
5.分箱过程中,决定分箱后的KS值是某一个切点,而不是多个切点的共同作用。这个切点的位置是原始KS值最大的位置。
卡方分桶
卡方分箱是自底向上的(即基于合并的)数据离散化方法,是有监督分箱。它依赖于卡方检验:具有最小卡方值的相邻区间合并在一起,直到满足确定的停止准则。
四、缺失值处理
- 直接使用(类似 XGBoost 等树模型)
- 删除(缺失值太多)
- 插值补全缺失值:均值、中位数、众数、固定值等
- 分箱,缺失值一个箱
五、特征构造
- 构造统计量特征,报告计数、求和、比例、标准差等;
- 时间特征,包括相对时间和绝对时间,节假日,双休日等;
- 地理信息,包括分箱,分布编码等方法;
- 非线性变换,包括 log/ 平方/ 根号等;
- 特征组合,特征交叉;
- 经验直觉
六、特征筛选
- 过滤式(filter):先对数据进行特征选择,然后在训练学习器,常见的方法有 Relief/方差选择发/相关系数法/卡方检验法/互信息法;
- 包裹式(wrapper):直接把最终将要使用的学习器的性能作为特征子集的评价准则,常见方法有 LVM(Las Vegas Wrapper) ;
- 嵌入式(embedding):结合过滤式和包裹式,学习器训练过程中自动进行了特征选择,常见的有 lasso 回归;
七、降维
PCA/ LDA/ ICA;
特征选择也算是一种。
网友评论