特征工程系列:笛卡尔乘积特征构造以及遗传编程特征构造
本文为数据茶水间群友原创,经授权在本公众号发表。
关于作者:JunLiang,一个热爱挖掘的数据从业者,勤学好问、动手达人,期待与大家一起交流探讨机器学习相关内容~
0x00 前言
数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。由此可见,特征工程在机器学习中占有相当重要的地位。在实际应用当中,可以说特征工程是机器学习成功的关键。
那特征工程是什么?
特征工程是利用数据领域的相关知识来创建能够使机器学习算法达到最佳性能的特征的过程。
特征工程又包含了 Data PreProcessing(数据预处理)、Feature Extraction(特征提取)、Feature Selection(特征选择)和 Feature construction(特征构造)等子问题,本章内容主要讨论特征构造的方法。
创造新的特征是一件十分困难的事情,需要丰富的专业知识和大量的时间。机器学习应用的本质基本上就是特征工程。
之前文章已经介绍了聚合特征构造和转换特征构造,接下来将介绍怎么进行笛卡尔乘积特征构造以及遗传编程特征构造。
0x01 笛卡尔乘积特征构造
1.原理
1)数学原理
笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尓积( Cartesian product ),又称直积,表示为 X×Y ,第一个对象是X的成员而第二个对象是 Y 的所有可能有序对的其中一个成员。
假设集合 A={a, b} ,集合 B={0, 1, 2} ,则两个集合的笛卡尔积为 {(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。
2)笛卡尔乘积在特征构造中的作用
通过将单独的特征求笛卡尔乘积的方式来组合2个或更多个特征,从而构造出组合特征。
最终获得的预测能力将远远超过任一特征单独的预测能力。
例如,如果狗狗在下午5点主人下班回来时(快乐地)叫喊,可能表示对主人满意度的正面预测结果。如果狗狗在凌晨3点主人熟睡时(也许痛苦地)哀叫,可能表示对主人满意度的强烈负面预测结果。
2.类别特征进行笛卡尔乘积特征组合
例子:类别特征color和类别特征light进行笛卡尔乘积特征组合
1)特征说明
特征 color 取值:
red, green, blue
特征 light 取值:
on, off
2)组合方法
这两个特征各自可以离散化为3维和2维的向量,对它们做笛卡尔乘积转化,就可以组合出长度为6的特征,它们分别对应着原始值对 (red, on),(red, off),(green, on),(green, off),(blue, on),(blue, off)。下面的矩阵表达方式更清楚地说明了这种组合。
X | on | off |
---|---|---|
red | ||
green | ||
blue |
对于三个特征的笛卡尔乘积组合,可以表达为立方的形式。更多特征的组合依次类推。这个方法也可以直接用于连续特征与类别特征之间的组合,只要把连续特征看成是一维的类别特征就好了,这时候组合后特征对应的值就不是 0/1 了,而是连续特征的取值。
3)组合结果
样本 | color=red& light=on | color=red& light=o |
---|