我可以添加属于另一个功能的功能吗?

数据挖掘 机器学习 特征选择 特征工程 相关性
2022-02-17 03:48:56

我正在构建一个模型(同时实现逻辑回归和 Xgboost),以了解每个功能在客户是否要回购方面的重要性/重要性,以了解客户回购的重要性(对推论比预测更感兴趣)

我的特征集是这样的:[收入、年龄、价格_产品、折扣、产品类别、送货费用、性别、生活方式、送货时间_主(P_main)、P1、P2、P3、P4等]

P_main 是客户看到的东西,可能会影响他们是否回购的决定。P1 + P2 + P3 + P4 = P_main。我们想了解 P1、P2、P3、P4 有多少重要,以及它们是流程中的阶段,因此我们可以推断如果我们要提高回购率,最应该关注哪个阶段。

特征集是否可以包含部分(P1、P2、P3、P4)以及总和(P_main)作为模型的输入?还是它会引入多重共线性问题?我正在使用方差膨胀因子删除具有多重共线性的特征,然后应用 Lasso 回归。

P_main 作为其他感兴趣特征的总和

2个回答

首先,我建议不要以任何方式合并连续变量。丢失的信息量和数字问题使得它很少是一个好的决定。在您的情况下尤其如此,您将通过分箱来消除模型中的很多自由度(如果您想要统计能力,这是必要的,即在您应该拒绝空值时)。如果您想考虑非线性,请使用样条曲线或更好的方法,使用不假定 y (的某些函数)与您的预测变量之间存在线性关系的算法。

其次,我会非常谨慎地使用机器学习算法进行任何类型的统计推断(确定预测变量的重要性/重要性),这些算法主要(如果不是完全)是为了预测而不是解释原因而创建的。换句话说,在这种情况下,我会坚持使用逻辑回归,因为大多数 ML 算法不允许太多(如果有的话)适当的统计推断。

在这种情况下,您考虑多重共线性是正确的。严重的共线性会对 p 值和置信区间产生不利影响,如果不是不可能的话,也会使推理变得困难。但这就是为什么您需要首先假设可能会影响您的目标,仔细指定您的模型,并检查与您选择的模型相关的假设(并修复或记录任何违规行为)。简单地将一堆预测变量放入模型中是行不通的,因为您实际上关心的是解释模型及其统计输出。

老实说,我建议您去交叉验证的 SE 获取更多信息,而不是在这里,它主要关注预测,而不是推理。

是的,您可以基于现有功能创建附加功能。

一般来说,这对于难以处理非线性关系的逻辑回归来说更强大(请参阅“ML Cookbook”的作者 Chris Albon)。

其他技巧:

  • 分箱可以通过逻辑回归创造奇迹,您可以在其中对度量进行分类,从而帮助算法进行拆分。

    • 逻辑回归的 Bagging

创建交互功能 (Chris Albon) https://chrisalbon.com/machine_learning/linear_regression/create_interaction_features/

磨练您的物流回归模型的提示 (Soledad Galli) https://blog.zopa.com/2017/07/20/tips-honing-logistic-regression-models/