技术:能建立一个模型来预测另一个模型的错误吗?

大家好,我是Lucy@FinTech社区,今天的文章将为大家介绍如何建立一个模型来预测另一个模型的错误。欢迎添加以下微信,加入FinTech社区,提认知,攒人脉,求职招聘,投资有术!

 

 

你是否想过通过训练一个机器学习模型,来预测我们实际模型的错误?

这听起来似乎很合理,机器学习模型会犯错误。我们利用这些错误并训练另一个模型来预测这个模型的错误,像我们建立预测模型一样!

 

就监督模型而言,从错误中学习有意义的。这种方法是以机器学习中boosting技术基础。许多集成算法中都有它的身影,例如决策树上的梯度提升。每次下一个迭代模型都经过训练以纠正前一个模型的错误。从而组合模型的性能比单个个好。

 

但是这能帮助我们训练一个独立的“二号”模型,来预测“一号”模型的预测结果是否正确?让我们来看一些例子。

 

训练看门狗

比如,你已经有了一个预测模型,你想要在它出错的时候捕捉错误。你决定基于第一个模型的预测出错的数据,来训练新的模型,以检测模型是否出错。

你要用第一个模型的错误来训练一个新的模型?这意味着什么?是的,这其实就相当于我们预测连续变量的回归任务。比如一旦我们知道实际销量,我们就可以计算模型误差。我们可以选择 MAPE 等指标。然后,我们使用该指标的值作为目标来训练模型。

让我们再来考虑一个分类任务:信用贷款违约的概率

我们的模型会给每个客户进行打分(比如0到100),如果超过某个阀值,我们就拒绝贷款。但是,如果我们在没有审查的情况下对所有预测采取行动,我们永远不会了解错误的预测。如果我们错误地拒绝了贷款,这个反馈就会到客户那里,这样就会造成尴尬的局面。

那么我们是否能利用对违约客户进行预测的概率,然后训练一个新模型来预测错误的情况?

 


 我们会成功吗?

“看门狗”在技术上可行的。就是说你可能能够训练一个实际预测某事的模型。但如果是这样,这意味着你应该重新训练初始模型

 

为什么机器学习模型会出错?撇开数据质量不谈,通常的原因包括两点:

1. 模型训练的数据中没有提供足够的信息或者没有足够的数据。总体而言,该模型没有学到任何有用的东西,最终得到了一个不好的结果。

2. 我们的模型还不够好。从数据中正确捕获信号太简单,它不知道它可以学习到什么东西。
 

在第一种情况下,模型错误将没有模式。因此,任何训练“看门狗”模型的尝试都会失败。没有什么新东西要学。

在第二种情况下,你可能能够训练出更好的模型!一种更复杂的,更适合数据来捕获所有模式。

 

 

一个模型统治一切?

很有可能,我们最初的模型并不是“糟糕的”。可能是一些不可控的条件影响了模型的准确性。比如COVID-19大流行会影响销售和信用行为。

那么我们不预测“错误”,我们会训练自己的模型预测更确切的东西,例如某人违约的概率有多大?销售额会是多少?这时我们需要新的模型,从它自己的错误中提升自己的准确性。

“看门狗”并不会让我们的模型变得更好。它并没有得到额外的数据,看门狗和模型都是使用相同的特征和相同的信号。也就是说如果模型出错了,”看门狗“模型也不会指出这个错误的!

 

 

那么怎样提升模型性能呢?

"看门狗"模型这个想法不起作用,那么我们还能怎么做提升模型的性能呢?

首先,建立定期监控流程。是的,这种方法并没有直接解决模型产生的每个错误。但它建立了一种方法来维护和改进模型性能,从而最大限度地减少错误

 

其次,考虑将机器学习与好的旧规则结合起来。如果我们更详细地分析我们的模型行为,我们可以确定它表现不佳的地方。然后我们可以将模型应用限制在那些我们知道模型有更可能成功的情况下。

 

第三,我们可以对模型输入添加统计检查。在“看门狗”模型中,想法是判断我们是否可以信任模型输出。相反,我们可以检测输入数据中的异常值,目标是验证它与模型训练的内容有何不同。例如,如果特定输入与模型之前看到的“太不同”,我们可以进行人工检查。

 

总结

我们都希望我们的机器学习模型表现良好,并且知道我们可以信任模型输出。虽然用另一个受监督的“看门狗”模型监控机器学习模型的乐观想法成功的机会很小,但意图本身有其优点。

还有其他方法可以确保模型的生产质量。其中包括建立全面的监控流程、设计自定义模型应用场景、检测异常值等。

本期的分享就到这里,欢迎大家留言交流!