使用特征叉乘(feature crosses)进行数据清洗

请问,用feature crosses进行数据清洗的时候,为什么要把叉乘结果补到预测模型的后面,而不是直接代替叉乘中的参数?

比如,有如图数据集。横坐标 x1 表示 特征1 ,纵坐标x2 表示 特征2。橘色点代表垃圾邮件,蓝色点代表正常邮件

显然我们无法构建一个垃圾邮件预测模型形如:$$ y=b+w_1·x_1+w_2·x_2 $$

解决办法是使用特征叉乘,即x3 = x1 * x2。从而构建新的预测模型:
$$ y=b+w_1·x_1+w_2·x_2+w_3·x_3 $$

我的问题是,为什么x3是补加到公式后面,而不是直接代替x1和x2,即为什么新模型不是如下形式???
$$ y=b+w_3·x_3 $$

问题来源于我看google的ML课程视频:Google Machine Learning Course

我数学不好,有木有大神解释一下。谢了

阅读 5.4k
1 个回答

想明白了,我们在建预测模型的时候,其实应该全盘考虑各种feature(特征)以及feature crosses(特征组合/特征叉积),并给予系数wi。至于wi是否会被学习为0,要看后面的数据处理,不应当再建模的时候想当然的就不考虑进来(即想当然wi=0)。这也是为什么,机器学习引入L1正则、L2正则来使一些系数降为0,来消除模型的复杂度,以避免overfitting。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进