[kaggle] 为什么交叉特征能起到作用?

长期以来,自己在做特征的时候,为啥要做交叉特征,已经为什么交叉特征能够起到作用比较迷糊,偶然在kaggle上看见一个例子,完美的解答了这个问题。

数据如下:

数据ID 类别ID X GroupX(交叉特征) Label
A 1 1 0.75 1
B 1 0 0.75 1
C 1 1 0.75 1
D 1 1 0.75 1
E 2 0 0.33 0
F 2 0 0.33 0
G 2 1 0.33 0
H 3 1 0.66 1
I 3 1 0.66 1
J 3 0 0.66 1

以决策树为模型,现在如果只使用特征X作为去预测Label,如图所示,那么只有70%的准确率。

[kaggle] 为什么交叉特征能起到作用?

现在利用类别ID和特征X做交叉特征,利用类别ID进行groupBy,将sum值除以类别组内基数,得到交叉特征GroupX,再利用交叉特征去预测Label,如图,准确率为100%。

[kaggle] 为什么交叉特征能起到作用?

总结

做交叉特征的目的在于,帮助模型去进一步的学习数据,特别是树模型这种无法知道特征与特征之间交互信息的模型。

参考文献

https://www.kaggle.com/c/ieee-fraud-detection/discussion/111453

上一篇:解决Kaggle账号注册没有显示验证码


下一篇:每日一书丨一书帮你了解算法竞赛时代的奥秘