选择分类模型:决策树或朴素贝叶斯

机器算法验证 机器学习 分类 朴素贝叶斯
2022-04-12 00:51:01

学生

我的目标是预测每月订阅模式业务的流失率。数据集有少量维度:

  • 订阅编号
  • 开始日期(可以推断“作为订阅者的月份”)
  • 价格计划(4 种变体)
  • 营销渠道(他们是如何找到我们的,例如 Google、电子邮件、Facebook)
  • 取消日期(因变量。如果从未流失,则不为空,如果有值则订阅流失的日期)

有 10k 条记录。

回到课堂上,朴素贝叶斯模型的概念听起来很直观,我想走那条路。但是后来我读到NB在变量很多的地方更好。我只有 5 个,其中一个是因变量)。

然后我想起了决策树。但是这篇文章说决策树“不太适合处理诸如时间之类的连续输入变量(而生存模型可能更适合)”。我的变量“开始日期”可能会抵消这一点,因为理论上是付费客户的几个月可能会影响客户流失(事实上,我们从定期的流失/队列分析中知道这一点)。

目标是预测帐户是否会流失(是/否)(不是实际的流失日期,因此我可能会将变量“取消日期”的数据集编辑为“流失”是或否)。

  1. 给定我的数据集和目标,我可以使用朴素贝叶斯或决策树吗?一个比另一个更合适吗?我会邀请其他模型建议,但我正在采取我在课堂上学到的婴儿步骤。
  2. 对于任一模型,我想如何编辑我的数据集?目前我有开始日期,如果他们搅动取消日期。因此,我可以创建一个新字段:“作为付费客户的月份”。这是建议吗?
  3. 我需要更改因变量的字段吗?它要么是空白的(未流失),要么将具有日期值(已流失)。我应该创建一个值“是”或“否”的新字段“搅动”吗?

我意识到这个问题有点开放式。任何帮助我前进的指示将不胜感激。

1个回答

不要基于相信做出选择,尝试两者!一旦你开发了一个交叉验证框架,用各种模型提供它并选择最好的模型并不难。有时,这些交叉验证框架已经存在( R 中的插入符号,但肯定还有很多其他的!)

论文:“我们需要数百个分类器来解决现实世界的分类问题吗?” http://jmlr.org/papers/volume15/delgado14a/delgado14a.pdf是对现有模型、它们的实现以及它们在各种数据集上的表现的非常好的评论。您可以根据示例的功能数量找到有关模型性能的信息。

但是,即使模型的性能先验地取决于特征数量、观察次数(一些模型已被开发用于处理特定情况)和观察类型,一个模型会比另一个模型表现更好也不是很明显.

恕我直言,您在选择模型时唯一应该考虑的就是训练它的时间。对于大型数据集,一些训练时间变得令人望而却步。例如,在超过 100 万个观察值上训练内核 SVM 永远不会结束。有了 10k 条记录和 5 个功能,您几乎可以训练任何东西。

至于特征工程,你也应该尝试你的每一个想法!对于分类变量,第一个开始是将它们编码为虚拟变量,以便最终得到一个数字矩阵。但您也可能想要移除稀缺因素,考虑相互作用......并继续观察对预测性能的影响!