不知道有多少同学坚持看完了特征工程系列1~4,今天我们迎来最后一篇。前面的四篇其实都是一些基于特征工程理论的干货的分享,今天我们来点虚的,讲讲我YY的一种蒙特卡洛搜索树的半自动化的特征工程方案。其实为什么要做自动化,其实经过前面文章的介绍大家应该都已经了解到,特征工程门槛其实非常高,而且需要太多的人为干扰。作为一个PM,我一定直在想设计一款自动化的特征工程方案,只是目前我还得不到更多的支持,但是这个理念可以跟大家分享。
先来讲讲智能特征工程的基础概况,我们知道特征衍生无非是已有特征相互之间的一些排列组合,只不过我们是通过实际的业务逻辑对这些特征进行组合。比如有一个球员的总投篮次数n,有一个球员总命中次数m,那么可以快速衍生出一个特征表示球员的命中率m/n。如果有一种方式可以遍历所有特征间的组合是不是就可以了,答案是肯定的,但实现不了,因为计算复杂度太大。于是就引出了今天的主角蒙特卡洛搜索树。蒙特卡洛搜索树是一种快速遍历候选集的树状搜索算法。
大家先看下这张图,然后我帮大家理清思路。其实特征工程的目的可以抽象为树搜索逻辑,因为做特征工程无非是找到一组最优的特征组合使得训练的模型的预测AUC最高。如果是随意的组合这些特征,那计算量是指数级的不可接受,如果用大名鼎鼎的AlphaGo就是用的这套方案。
下面讲讲我设想的方案,首先把已有的特征集合定为Z,在上图的Selection阶段我们把Z部署为初始树,然后在Expantion阶段随机的从Z中选取K个数据与已有的Z中的数据集进行组合,可以乘或者除,把生成的节点作为新的特征放到树的子节点上。然后simulation阶段测试新生成的特征加入Z是否提升了整个模型的效果。如果有提升,在Backpropagation阶段更新整个树的节点,将新生成的子叶加上。循环下去,就可以生成最优的特征组合。但是这种特征组合只能是二阶的,就是每次只能两个特征组合,不能覆盖所有场景,所以是半自动化。
大体思路是这样,可能没太说清楚,本文的思路纯YY~也欢迎大家一起讨论哈,毕竟auto ML是未来的一个大趋势,而自动特征提取也是其中关键一环,感谢大家关注这五篇特征工程系列文章。
总算在年前完成了整个关于特征工程问题的梳理~点击量虽然是一篇比一篇低,但是我觉得这种真正有价值的东西还是值得分享的,踏踏实实的过每一天,虚心的去对待每一个知识点。
转自:https://mp.weixin.qq.com/s?__biz=MzA4MDI0NDQyOQ==&mid=2447500083&idx=1&sn=8774c39a66aad3438153e1655832ed3b&chksm=8bb27891bcc5f187522093e2e068e8fc31f37ba914f6f21837c2dbb2155a6dbcc30a765bdfe0&mpshare=1&scene=23&srcid=0210DfhZoaQaRJLuqd9qR1r5#rd