笛卡尔乘积特征构造
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)。下面的矩阵表达方式更清楚地说明了这种组合。
def cartesian_product_feature_crosses(df, feature1_name, feature2_name):
feature1_df = pd.get_dummies(df[feature1_name], prefix=feature1_name)
feature1_columns