预测罕见事件我正在与一位客户合作进行 Pro 试用。他们正在使用约 300 万行的数据集,尝试构建一个预测模型来预测发生率为 0.1% 的故障(二元响应,连续因素)。故障是致命的,他们会很乐意接受一个可以捕捉上述故障的模型,即使以丢失通行证为代价。
我几乎把我知道的所有方法都用过了。为了缩短运行时间,他们将原始文件子集缩小到原始数据的 1-10%,尝试了各种加权技术,Torch、XG Boost 和模型筛选。Boosted Tree 取得了最大的成功,但在每种情况下,在子集上开发的模型都过于拟合,无法在大小相似但完全不同的数据集或更大的数据集上使用。
我是否应该增加权重(目前权重为 1/100),创建一个失败率过高的数据子集?是否有可以针对这种高度不平衡的模型进行最佳设置的超参数?我正在寻找有关可以与此人一起尝试的建议/指导。谢谢。
回复:预测罕见事件您是否尝试过不平衡分类插件?我之前尝试过一段时间,发现它可以提高我们其中一个样本数据集的性能(现在我记不清是哪个了)。我不是 SMOTE 或 Tomek Links 方面的专家,但我发现这篇 Kaggle 帖子的介绍有助于理解基础知识。
如果您还没有尝试的话,这应该是一个很好的下一步。
回复:预测罕见事件这些罕见事件让我想到了可靠性,但我不确定这是正确的做法。因此,随着时间的推移,您会不断输入各种因素,但时不时地就会出现故障。那么一些控制图工具,尤其是多变量控制图呢?尝试将某些因素组合与故障联系起来。
回复:预测罕见事件您是否查看过模型筛选中的决策阈值?它用于二元分类。您可以看到不同的阈值(0.1 和 0.5)对模型的影响。
回复:预测罕见事件您是否考虑过在 GenReg 平台中使用零膨胀二项式?此外,您是否考虑过导致更高 I 类/假阳性的决策阈值?
回复:预测罕见事件另外,虽然我还没有看过,但如果我猜得没错的话, @Jason_Wiggins最近关于缺陷计数模型的掌握网络研讨会可能会有所帮助: 为缺陷计数模型做出最佳选择
回复:预测罕见事件gen reg 中的零膨胀听起来是个不错的方法,但不确定运行时间。无论你最终采用哪种模型,一定要使用决策阈值来确定适当的截止值(否则预测公式假设任一事件的比例为 50:50)。我会给你发一份我整理的幻灯片,帮助你根据决策阈值报告决定截止值。回复:预测罕见事件所以……如果他们在一台不错的机器上运行基于专业的模型(并且不会因为因素数量而发疯),我不知道 3M 记录应该不会太糟糕。我认为你在这里有几个问题需要考虑。
首先,他们是否进行过一些因素筛选?增强树或随机森林应该会告诉您其中是否存在无关紧要的因素。减少这些因素将减少拟合时间。
第二(或者可能并列第一 - 我不确定),他们是否在进行分层交叉验证?让他们使用验证列设置工具创建 TVT 交叉验证,并将响应放在分层字段中。这将使模型保持诚实。我喜欢在训练组中拥有大量数据,并在后两者中减少数据量。
建议的模型类型和分布都是好主意——我偏向于使用基于树的方法(随机森林、提升树或 XGBoost),使用随机种子来提高可重复性。它们是为这些较大的数据集设计的。我认为 Jerry 对罕见事件可靠性角度有一个有趣的想法。你也可以考虑这个:https: //youtu.be/Ac6E7da9igU
关于权重 - 我认为你做的还不够。使用你的 0.01% 失败率,我会给通过的数据赋予 0.0001 的权重,给失败的数据赋予 0.9999 的权重。不久前我们讨论过这个问题,(我承认是部落的)指导是将响应列放入分布中并反转比例(我在第二句中描述了这一点)。这似乎很有效。
最后,也许只是重新审视一下情况,当评估旨在让他们相信自己能够找到问题的解决方案时,评估过程会更加顺利。他们实际上并不关心如何让他们真正跨过问题的终点线。我想我们都知道,这样的事情需要他们进行一些学习周期,并且可能会在评估的剩余时间内顺利进行。如果你专注于让他们相信他们会用 Pro 找到解决方案,那么即使你没有得到他们问题的“模型”,他们也会购买。
回复:预测罕见事件感谢大家到目前为止的反馈!我针对这个问题提出了下面列出的一些想法,但不是全部,也不是按照推荐的方式。我很感谢你们的建议。