特征工程

特征工程

前言

简单说,特征工程是能够将数据像艺术一样展现的技术。因为好的特征工程很好的混合了专业领域知识、直觉和基本的数学能力;本质上说,呈现给算法的数据应该能拥有基本数据的相关结构或属性 。当你做特征工程时,其实是将数据属性转换为数据特征的过程,属性代表了数据的所有维度,在数据建模时,如果对原始数据的所有属性进行学习,并不能很好的找到数据的潜在趋势,而通过特征工程对你的数据进行预处理的话,你的算法模型能够减少受到噪声的干扰,这样能够更好的找出趋势。事实上,好的特征甚至能够帮你实现使用简单的模型达到很好的效果。

数据预处理

  • 缺失值情况
    特征工程
    从上图中可以看到一些特征列存在较多的缺失值,因此需要处理一下;缺失值的处理主要包括删除和填充,缺失值的填充需要谨慎处理;
    特征工程
    使用众数填充类别变量;使用中位数填充数值型变量;

  • 时间格式处理
    由于算法无法直接处理时间型格式;因此需要对时间进行一些转换。
    特征工程
    如图所示issueDate特征为表示年月日的格式;
    特征工程
    经过了处理后的时间格式特征;
    特征工程
    统计不同年份的数量;

  • 对象特征转换为数值
    特征工程
    特征工程
    特征工程
    earliestCreditLine 将其从object类型转换为int类型;

类别特征处理

  • 部分类别特征的特征值的数量

特征工程
特征工程
如上图所示,grade特征的A、B、C、D、E的值存在着一些优先的顺序;因此我们可以将其映射为特定的顺序,如1234;

异常值处理方法

  • 3σ原则
    在统计学中,如果一个数据分布近似正态,那么大约 68% 的数据值会在均值的一个标准差范围内,大约 95% 会在两个标准差范围内,大约 99.7% 会在三个标准差范围内。
  • 箱线图
    箱形图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。因形状如箱子而得名。在各种领域也经常被使用,常见于品质管理。它主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比 较。箱线图的绘制方法是:先找出一组数据的上边缘、下边缘、中位数和两个四分位数;然后, 连接两个四分位数画出箱体;再将上边缘和下边缘与箱体相连接,中位数在箱体中间。

分箱

在建模中,需要对连续变量离散化,特征离散化后,模型会更稳定,降低了模型过拟合的风险。

  • 卡方分箱
    卡方分箱是一种自底向上的(即基于合并的)数据离散化方法。 它依赖于卡方检验:具有最小卡方值的相邻区间合并在一起,直到满足确定的停止准则。
    对于精确的离散化,相对类频率在一个区间内应当完全一致。因此,如果两个相邻的区间具有非常类似的类分布,则这两个区间可以合并;否则,它们应当保持分开。而低卡方值表明它们具有相似的类分布。

  • 等距分箱
    即保持每个区间长度大致相等;

  • 等频分箱
    即保持每个区间中的实例个数大致相等;

  • KS分箱
    KS(Kolmogorov-Smirnov)用于模型风险区分能力进行评估,指标衡量的是好坏样本累计部分之间的差距 。KS值越大,表示该变量越能将正,负客户的区分程度越大。通常来说,KS>0.2即表示特征有较好的准确率。
    Best-KS分箱的算法执行过程是一个逐步拆分的过程:将特征值值进行从小到大的排序。
    计算出KS最大的那个值,即为切点,记为D。然后把数据切分成两部分。
    重复步骤2,进行递归,D左右的数据进一步切割。直到KS的箱体数达到我们的预设阈值即可。

特征交叉

通过将单独的特征进行组合(相乘或求笛卡尔积)而形成的合成特征。特征组合有助于表示非线性关系。比如属性A有三个特征,属性B有两个特征,笛卡尔积后就有六个组合特征,然后用one hot 或其他embedding方式给新的特征编码。

特征选择

常见的方法有:

过滤法(Filter):按照发散性或者相关性对各个特征进行评分,设定阈值或者待选择阈值的个数,选择特征
包裹法(Wrapper):根据目标函数,每次选择若干特征或者排除若干特征,直到选择出最佳的子集。
嵌入法(Embedding):先使用某些机器学习的算法和模型进行训练,得到各个特征的权值系数,根据系数从大到小选择特征。类似于Filter方法,但是是通过训练来确定特征的优劣。