是一个 F1F1 0.1的分数总是不好?

数据挖掘 机器学习 分类 阶级失衡 f1score
2021-10-07 00:53:54

我目前正在构建一个模型来预测源自 2018 年第一季度的贷款的早期抵押贷款拖欠(在 2 年内拖欠 60 天以上)。我最终会超时训练(在 2015 年第 4 季度开始的贷款),但现在我只是在进行及时训练(2018 年第 1 季度的训练和测试)——即使这样我也觉得很有挑战性。该数据集包含约 400k 的观察结果,其中约 99% 为非违法行为,约 1% 为违法行为。到目前为止,我的想法是使用精确度、召回率和F1 作为性能指标。

我正在使用 Python。我尝试过的事情:

  • 模型:逻辑回归和随机森林。
  • 模型选择:使用 GridSearchCV 调整超参数 F1 评分(在优化对数损失、ROC-AUC、Cohen's Kappa 时,结果没有显着差异)。
  • 处理不平衡的数据:我尝试了各种比率的随机欠采样,并确定了 ~0.2 的比率。我还尝试弄乱类权重参数。

不幸的是,我的验证和测试 F1分数只有 0.1 左右,(精度和召回率通常都接近 0.1)。这似乎很差,因为您可以解决许多问题F10.9+ 的分数。同时我听说没有“好F1” 范围,即它是任务相关的。实际上,与类频率成比例预测的虚拟分类器只能实现精确度、召回率和 F1 0.01。

我试图找到关于这类任务的“好”分数的参考资料,但我似乎找不到太多。其他人经常报告 ROC-AUC 或 Brier 分数,但我认为这些很难从业务附加值的角度来解释。一些报道F1但是由于数据泄漏或报告对欠采样数据的测试性能而看到过于乐观的结果。最后,我看到有些人通过预期业务成本而不是报告来衡量混淆矩阵结果F1,这似乎是一条更好的路线。

我的问题是:(1)是 F1 0.1 的分数总是不好?,(2)优化是否有意义 F1 还是我应该使用另一个指标?,(3)如果 F1 是合适的,0.1 的分数很差,我该如何提高我的表现?

4个回答

从信用评分的角度来看: F1 分数 0.1看起来很糟糕,但对于不平衡的数据集并非不可能这可能足以满足您的需求(一旦您按成本衡量错误)。并且可能无法走得更高(没有足够的数据来预测看起来随机的事件)。在信用评分中,目标中总是有一个“随机”部分(猝死、离婚……),具体取决于人口和贷款目标。

  1. 您可能想要调查您的功能和目标。基本上:从统计学上讲,在单变量方法上,您是否具有似乎可以预测目标的特征?(人的年龄?收入?贷款的目的?)。您可能还需要调查目标:您是否有一些调查问卷可以让您了解该人违约的原因?(如果大多数默认值来自随机事件,您可能无法对其进行建模)。

  2. 主要问题是F1信用评分中的得分不是数据不平衡,而是成本不平衡。I 型和 II 型错误会产生截然不同的后果。鉴于您已经提供了贷款,我什至不确定是否存在与误报相关的成本(说有人会违约而不会违约)。加权精度和召回率可能很有趣(即使用Fβ如此处所定义)。另一个问题是它通常有利于二元决策。根据您要使用该模型的目的(测量已发放贷款的风险?发放新贷款?为新贷款定价?)可能有更好地捕捉模型歧视(AUC - 参见其统计解释)或个人违约概率的替代方案(布赖尔分数)。

  3. 假设您当前的建模没有具体问题(特征工程、不平衡处理、模型的“功率”)。您可以做一些特定于信用评分的事情。制定您的目标定义(如果您在发起后的 5 年内拖欠 90 天以上怎么办?)。尝试收集有关您的客户及其行为的更多数据(贷款目的、他们在您的银行使用的其他产品……等)。

(1)为了在您的情况下保持简短:是的 0.1 不好。为了避免哲学讨论,让我们假设您必须将其提高。

(2) 这绝对是有道理的,因为您的数据集高度不平衡。不要期望有一个指标让你惨遭失败,而在另一个指标上你却成功了。这不是它的工作原理,它们通常是相关的。

(3) 这是一个非常普遍的问题。做更多的机器学习。但这里有一些值得探索的命题:上采样、更复杂的模型(lgbm、nn)、特征工程(了解你的数据!)、分析失败的预测在这里你可以看到你需要改进的地方等等......

最后,我只想明确一点,并非所有东西都可以建模。也许从您的数据集中您无法得出这个结论。这由您决定何时用尽所有可能的潜在解决方案。

简短的回答是肯定的。尽管如此,您应该在数据理解过程中更深入,即分析是否真的存在区分/区分好付款人和拖欠付款人的特征。

例如,您有数字变量,例如当前余额、拖欠账户数量、过去六个月的查询数量等如果您根据班级绘制这些特征的分布,这些分布是否不同(您可以使用 KS 分数验证)?

关键是,如果两个人群(付款人与非付款人)的特征之间没有“明显”差异,无论您是否有 50 - 50 个目标分布,任何模型都很难区分类别,但当然不平衡的事实使事情变得更加困难。

要考虑的另一点是,如果您可以重新定义度量标准,以便有更早的拖欠指标,它可能有助于平衡您的样本。

我的意思是,假设您将一年后未支付义务的人标记为拖欠,那么此事件与用户在前 6 或 7 个月内未付款的事件有多大关系?从这个意义上说,您可以使用一个高度预期用户将拖欠这一事实的指标重新定义您的指标,这可能会改变您的班级分布,以便有更多来自非付款人的案例(假设这是少数班级)

我要提到的最后一件事是,您可以尝试这里研究的一类分类

关于这个话题的好讨论是here

我有一个领域观察,而不是建模。它基于我 2007 年对 2006 年由单一发行人通过经纪人收益率差营销模型发起的 125,000 笔证券化次级贷款的分析。除了 50 个发起变量外,还跟踪了每月的付款模式。

  1. 拖欠不仅是信用担保的问题,而且是整个贷款决策的问题。其他组件包括

一个。净值和息票(ARM 的指数变化影响支付能力);湾。关于房地产市场稳定性的假设;C。加速确认销售收益与保留风险的时间折现损失之间的平衡;d。道德风险对信用承销严格性的影响(例如,对借款人表示打算作为永久居民居住的怀疑程度);e. 生活事件,例如失业、收入信贷的疾病、失业(例如,非自愿照顾家庭成员)、个体经营或离婚的生意失败;和 f。外生事件,例如增加偿债负担的 ARM 指数突然上升。

  1. 最初对所有这些因素的评估部分基于自动承保系统。AUS 评估取决于基于历史数据开发的算法。就我而言,历史数据反映了在一个更稳定的市场中一个小得多的池的表现。它还强烈依赖“FICO”信用评分作为贷款业绩的预测指标。孤立地讲,FICO 与 2006 年的贷款违约没有相关性。

  2. 评估的另一部分是基于规定的手动承保指南。尽管这些指导方针是“客观的”,但它们也很复杂、模棱两可且难以应用。待处理的申请数量庞大,降低了指南应用的质量,并损害了边缘案件所需判决的应用。

  3. 在最初的承保之后,有利和不利的决定都需要由管理层进行第二轮审查。由基于数量的激励补偿引起的道德风险导致审查的负面建议多于正面建议,预期结果是,任何因素的重新平衡在判断上都代表风险的增加,而不是减少。

  4. 池中的所有贷款都进行了第一笔预定付款。少数但仍然异常多的数量未能进行第二次或第三次付款,并按合同要求被回购。在生存分析方面,这些贷款被“审查”了。人们普遍认为,此类贷款代表承销失败。

  5. 从第四次预定付款开始,对承保过程的任何评估都受到幸存者偏见的双重影响。根据相同的承保指南不成功的贷款申请均无法评估其表现。除非假设所有此类贷款都必然会拖欠,否则从该过程中的贷款表现得出的推论会被削弱。

  6. 在贷款的生命周期中,它可能会定期拖欠而不会违约。例如,一笔贷款可能会错过两次连续还款,赶上,然后错过另外两次。

  7. 错过连续三笔付款的贷款违约,进入止赎/清算程序。但是,在解决之前,贷款可能会恢复或安排暂缓/还款计划,在这种情况下,贷款再次成为拖欠的可能性。

  8. 贷款在未完全清算的情况下拖欠的次数越多,承销决定与任何违约发生之间的关联就越弱。

  9. 另一个在 2006 年池中不存在的复杂情况发生在同一年份的其他池中,其中一个发起人将封闭的贷款出售给不同的贷方。在服务转移期间,付款可能会延迟入账,贷款将被错误地归类为拖欠。

  10. 就任何犯罪的发生与起源过程之间的关联而言,这种联系似乎是高度可变的。

  11. 所有这些考虑表明,起源变量对首次违约的影响是 a) 受起源变量在应用方面变化的影响,b) 附加到起源变量的流体权重,以及 c) 起源和首次违约日期之间的持续时间拖欠和 d)任何单一拖欠的最终经济后果都不同。

  12. 您正在评估的资金池,即 2018 年的房利美贷款在承保标准和申请方面都不同。根据我在 2005 年之前对房利美计划的经验,贷款审批更加自动化,更少受“人为干预”的影响,并且受房利美的市场力量监管,强制从发起人那里回购拖欠贷款,并以惩罚性“G-”惩罚不良行为者。费用”或从项目批准中开除的“死刑”。

  13. 尽管如此,房利美 AUS 还是一个黑匣子,其算法只能通过微调规则中的资格标准来估计了解可用于获得贷款资格的游戏程度——游戏系统。

  14. 因此,虽然房利美贷款在自变量的测量和权重方面的不确定性范围较窄,但其对拖欠的预测能力存在相当大的不确定性,更不用说第一次拖欠的时间了。

  15. 我的观察部分基于我所做的分析,以及基于作为抵押贷款支持证券化律师超过 15 年经验的判断。我负责超过 1500 亿美元的抵押贷款,并结束了我作为华盛顿互惠银行高级副总裁/副总法律顾问的职业生涯。这种经验并没有提高我执行的数据分析的质量。可能表明确定起源的过程是高度随机的,并且应该在任何模型中考虑以预测任何给定时期内拖欠的二元结果。