实验:

使用的数据集为天池新人赛中的,优惠券使用预测。利用FM/FFM做自动化特征工程,利用GBDT进行预测。

结论:

先说结论,用FM/FFM 来自动化特征工程的效果并不好,不如人工构建特征+GBDT

原因:

  1. 在GBDT模型下加入FM/FFM一阶特征,并没有起到提高AUC的作用,反而略微下降。因为新加入的特征本身就存在原来的特征中,为共线性的特征,产生了干扰。所以没有必要加入一阶特征,但是我们可以通过所获计算出来的一阶特征的权重,当特征过多时,对原始特征进行筛选,剔除没有必要的一阶特征。

 

    2.在GBDT模型下加入FM/FFM二阶特征。AUC并没有产生变化。我认为,原因是GBDT新增的二阶特征基尼系数是相当低的导致的。如下表:

A

P(Ai)

B

P(Bi)

A1

0.1

B1

0.1

A2


0.2

B2

0.2

A3

0.3

B3

0.7

A4

0.2

 

 

A5

0.1

 

 

 

已知(A1,B1)为新构成的二阶交叉特征,则其值为1的概率为1%,为0的概率为99%。导致新增属性列的基尼系数非常低,大概率不会被选为切分特征,即不会用到该特征,故不会对结果产生影响。此时,我们需要对max_depth 进行调节。增加树的深度,将默认的值7改为9时,发现auc则会出现一定程度的提高,但是从结果看来,提高是有限的,并且会导致一定的过拟合问题。因此要想和gbdt模型融合好,不仅需要筛选出权重绝对值相对高的组合特征,而且还需要保证是出基尼系数相对较高

3.该试验数据并非稀疏的数据,仅有3列分类变量,而FM/FFM较适用于稀疏数据。数据越稀疏,该组合模型的收益越大(没找到非常稀疏的数据验证,该结论来源于原论文)。

4.当分类变量的分类过多会影响模型的效果(上份报告提过,这次实验验证了)。对于有些分类变量如,先进行人工划分,构造特征,再进行组合效果会更好。如{周一,周二,.....,周日}。可以划分为{工作日:周一,......周五},{周末:周六,周日}。其原理与第二条所述有关,总而言之,存在越多分类变量,且每个分类变量拥有的更少的分类(最好为二分类量),就能构造出基尼系数更大的组合特征,则该组合模型效果越好。

5.本试验中,FM与FFM用来做特征工程的试验结果相差不大,但是FM计算速度方面存在明显的优势。

6.从实验结果来看,构造高阶特征性价比不高,因为所构造的高阶特征,往往其基尼系数更低,训练成本也高。

7.FM/FFM模型对连续性特征处理并不好,若能将连续值有效的划分为很少的几个类(最好是两个)是有效的,但是粗暴的划分,可能会带来信息损失。

8.FM/FFM与LR可能有更好的结合(待试验)

9.FM/FFM在训练优化过程中,是对正负样本的比例不敏感的,但是正负样本比例会对gbdt存在影响。