机器学习已经在企业中得到了广泛应用。最近在与不同企业的交流中发现,机器学习模型预测结果的可信性得到越来越多的关注。
也就是说,如何确定机器学习模型预测的结果是符合常理的,进而确定所选择的机器学习模型是可信的。
关于这个问题,我将通过两个篇幅向大家介绍机器学习模型的可信性,即机器学习预测结果的解释,以及 matlab 如何支持对机器学习模型预测结果的解释,并通过一个例子说明在 matlab 中的实现过程。
首先介绍机器学习模型预测结果的解释及 matlab 的支持情况。
1、机器学习模型的可信性
机器学习的目的是在训练数据集中学习到一个最优的模型,并且这个最优模型对未知数据有很好的预测能力(即模型具有很好的泛化能力)。
广泛使用的衡量模型好坏的标准是模型精度,即模型在训练集上的准确度。而在追求模型准确度的过程中,往往会产生过拟合问题,在训练样本不足的情况这个问题尤为严重。模型在训练集上有很好的精度,但是在测试集上精度确很差。因此,仅仅是通过模型的精度进行模型的选择,往往会使得模型的可信度变低,尤其是在过拟合的情况下。
为了避免过拟合,提高机器学习模型的精度,正则化和交叉验证是最常采用的方法。
正则化是遵循结构化风险最小化原则,即减少模型中非零参数的数量(也就是减少变量的个数或者特征的个数),进而从模型结构上降低复杂度。尤其在训练样本不足的情况下,过多的变量或数据特征容易造成模型的过拟合。交叉验证是通过引入验证集提高模型的泛化能力。
交叉验证将训练集进行 k 份(也叫k-fold)的切分,其中 k-1 份用于训练,1 份用于验证。并且不断的交叉选择训练集和验证集,得到 k 个模型训练结果精度,使用 k 个结果的平局值作为最终的模型精度。
不论是正则化的方法,还是交叉验证的方法,选择模型的依据都是比较模型的精度。但是,模型预测结果的合理性或可信性,是决定能否将机器学习模型应用到生产环境下的重要因素。特别是,对于复杂的非线性模型,我们并不清楚为什么能够取得某种预测结果,是那些变量或那些数据特征影响模型的预测结果。这往往使得复杂机器学习模型变成一个黑盒。黑盒模型带来了可信度的问题:
我是否可以相信机器学习模型的预测结果?进而,我是否可以相信训练生成的机器学习模型?
这就引出了今天将要给大家介绍的内容:机器学习模型的可信性。
这里的可信性是指:是否可以对机器学习模型的预测结果给出一个合理的解释,能够定性地呈现出模型输入数据的特征和模型输出的预测结果之间的关系。通俗的说,我得到的预测结果是受到哪些因素的影响。领域专家往往对研究的领域具有先验知识,当对模型预测结果的解释与先验知识相匹配时,机器学习模型预测结果的可信性就会大大提升,否则就会拒绝预测结果。
如何实现对机器学习模型的预测结果进行解释呢?
ribeiro 等人在论文[1]中提出了 lime(local interpretable model-agnostic explanations)。lime 的目标是:对于一个训练好的机器学习模型,找到一个适合的可解释模型,用于解释机器学习模型的预测结果,也就是定性分析输入数据的特征与预测结果的相关性。这里提到的可解释模型是指模型本身具有自解释性,这中自解释性是由模型结构特性决定的。这类模型主要是指线性模型和决策树模型。
2、matlab 对此的支持
来源:机智网
以上是网络信息转载,信息真实性自行斟酌。











)







