解释一个BigQuery ML模型

1,019 阅读3分钟

如何获得和解释预测的解释

BigQuery ML是一种易于使用的方式,只需使用SQL即可在结构化数据上调用机器学习模型。虽然它开始时只有线性回归,但通过将BigQuery ML与TensorFlow和Vertex AI连接起来作为其后端,增加了更复杂的模型,如深度神经网络和AutoML表。换句话说,虽然我们写的是SQL,但被执行的是TensorFlow。

图片:StartupStockPhotos来自Pixabay

现在,BigQuery ML正在从Vertex AI后端获取更多的功能。在之前的一篇文章中,我向你展示了超参数调整。在这篇文章中,我将向你展示可解释性。

什么是可解释性?

可解释性是一种理解机器学习模型正在做什么的方法。有两种类型的可解释性。在局部可解释性中,我们问ML模型它是如何得出一个单独的预测结果的。为什么它说这个租赁将持续2000秒?为什么它认为这个交易是欺诈性的?

在全局解释能力中,我们询问特征的重要性。一天中的时间在预测租房时间方面有多重要?交易金额在预测交易是否是欺诈性的过程中的重要性如何?

BigQuery ML支持这两种类型的解释,但根据我的经验,本地可解释性是最终用户想要的,所以我将专注于此。

一个回归模型

我将采取简单的模型来预测自行车租赁的持续时间,我在我的书(BigQuery: The Definitive Guide)中一直使用这个模型。

CREATE OR REPLACE MODEL ch09eu.bicycle_linear

解释一个预测

我们不调用ML.PREDICT,而是调用ML.EXPLAIN_PREDICT,以便在预测的同时获得解释。

SELECT * 

结果。

预测的持续时间是1929秒。

该模型从4598秒的基线预测值开始--这是整个训练数据集的平均预测值。从第二个输入(时间戳)中,模型得出了每天的小时和每周的日期。

周日是星期三,模型在基线值上增加了247秒。换句话说,人们在周三租自行车的时间比平均时间略长。

但此时,我们看的是凌晨4点。而这导致租车时间被大幅下调,减少了2800秒!

最后,Parkside是一个租金通常较低的车站。因此,模型又进行了一次修正,这次是116秒。

4598 + 247–2800–116 = 1929

一个分类模型

作为我们的第二个例子,让我们采取一个欺诈预测模型。

CREATE OR REPLACE MODEL advdata.ulb_fraud_detection 

同样,我们使用ML.EXPLAIN_PREDICT。

SELECT * 

其结果是欺诈预测类为0(无欺诈),概率为0.946。这对应于_logits_值为-2.87(概率是logits的sigmoid)。

不幸的是,这个数据集没有告诉我们列是什么,但基线是-2.70,表明数据值没有什么不寻常的地方。

让我们尝试一下不同的预测,这次挑选了一个价值非常高的交易。

SELECT * 

现在,该模型预测该交易可能是欺诈性的。logits值为12.665,而基线值为-2.7。这笔交易的概率大幅提高的关键因素是V4(增加10.67)和V14(减少4)。当然,如果我们知道V4和V14是......这将意味着更多,但公开发布的金融数据集并没有这个信息。

正如你所看到的,你可以使用实例解释来解释不同的输入如何导致结果值的变化。这可以帮助建立对模型正常工作的信心。

请欣赏!


解释BigQuery的ML模型最初发表在Medium上的Towards Data Science,人们通过强调和回应这个故事来继续对话。