在本文中,我们深入研究了机器学习和人工智能模型的解释性和解释性的概念。我们探讨了为什么了解模型如何做出预测至关重要,尤其是当这些技术用于医疗保健,金融和法律体系等关键领域时。通过Lime和Shap等工具,我们演示了如何获得对模型决策过程的见解,从而使复杂的模型更加透明。本文强调了解释性和可解释性之间的差异,并解释了这些概念如何有助于建立对AI系统的信任,同时还应对其挑战和局限性。
学习目标
解释性是回答模型决策背后的原因的过程。例如,我们可以说ML和AI模型在可以通过解释模型如何在树中拆分公共节点并解释其分开的逻辑来提供模型的决策的解释和推理时具有解释性。另一方面,可解释性是将模型的解释和决策转换给非技术用户的过程。它可以帮助数据科学家了解诸如权重和系数之类的事物,从而有助于模型预测,并帮助非技术用户了解该模型如何做出决策以及模型对做出这些预测的重要性。 随着AI和ML模型越来越复杂,具有数百个模型层以及数千至数十亿到数十亿到数十亿到数十亿的参数,例如在LLM和深度学习模型中,我们很难理解该模型的整体和本地观察水平的决策。模型解释性为模型内部运作的见解和推理提供了解释。因此,数据科学家和AI专家必须将解释性技术利用到其模型构建过程中,这也将提高模型的解释性。
提高模型的解释性和可解释性的好处
>下面我们将研究模型的解释性和解释性的好处:
>
>信任与人以及非生命的事物相关联。例如,依靠朋友的决策或依靠全自动驾驶汽车将您从一个地方运送到另一个地方。缺乏透明度和沟通也可能导致信任的侵蚀。同样,信任是通过小步骤和重复积极互动来建立的。当我们与某人或事物保持积极的互动时,它会增强我们对他们的可靠性,积极意图和无害性的信念。因此,信任是通过我们的经验随着时间的推移而建立的。>
提高透明度和协作>当我们可以解释机器或深度学习模型的内部运作,其决策过程以及规则和选择背后的直觉时,我们可以建立信任和问责制。它还有助于改善与利益相关者和合作伙伴的协作和参与。
>
>当某事断裂或无法按预期工作时,我们需要找到问题的根源。为此,对系统或模型的内部工作的透明度至关重要。它有助于诊断问题并采取有效的措施来解决问题。例如,考虑一个预测该人“ B”的模型,不应批准贷款。要理解这一点,我们必须检查模型的预测和决策。这包括确定“ B”观察人员优先级的模型的因素。 在这种情况下,模型的解释性将非常方便地研究模型的预测和与人相关的决策”。同样,在更深入地研究模型的内部运作时,我们可能会很快发现一些可能影响和影响模型决策的偏见。
因此,使用ML和AI模型具有解释性并利用它们将使故障排除,监视和持续改进有效,并有助于识别和减轻偏见以及错误以提高模型性能。> ML的流行业务用例,AI解释性和解释性
>我们始终对该模型的总体预测能力感兴趣,以影响和做出数据驱动的知情决策。在银行和金融,零售,医疗保健,互联网等各种行业中,ML和AI模型有许多应用程序。商业,保险,汽车,制造,教育,电信,旅行,空间等以下是一些示例:
>要进行这些内部流程,例如申请批准和欺诈监控的有效,银行和财务杠杆ML和AI建模,以协助这些重要的决定。他们利用ML和AI模型根据某些给定和已知因素来预测结果。 通常,这些机构中的大多数不断监视交易和数据以检测模式,趋势和异常。对他们而言,重要的是有能力了解他们处理的每个应用程序的ML和AI模型预测。他们有兴趣了解模型预测背后的推理以及在做出预测中发挥重要作用的因素。
>现在,假设ML模型预测贷款申请将被拒绝对其一些信用评分高的客户拒绝,这似乎并不常见。在这种情况下,他们可以利用模型解释进行风险分析,并就模型决定拒绝客户应用的原因而获得更深入的见解,而哪些客户因素在此决策中起着重要作用。这一发现可能有助于他们检测,调查和减轻模型决策中的问题,漏洞和新偏见,并有助于提高模型绩效。
医疗保健有能力深入研究模型的预测,利用的决策规则,并理解影响预测的因素变得很重要。医疗保健专业团队将进行尽职调查,并期望ML/AI模型的透明度提供与预测的患者结果和促成因素有关的清晰详细的解释。这是ML/AI模型解释性变得必不可少的地方。 此审问有时可能有助于发现模型决策中一些隐藏的漏洞和依据,并可以解决以改善未来的模型预测。
自动驾驶汽车自动驾驶汽车是自动操作的车辆,例如汽车,货车,火车,飞机,飞机,飞船等。在此类车辆中,AI和ML型号在使这些车辆能够独立运行而无需人工干预的情况下独立运行。这些模型是使用机器学习和计算机视觉模型构建的。它们使自动驾驶汽车/车辆能够感知周围环境中的信息,做出明智的决定并安全地导航。
>在旨在在道路上操作的自动驾驶汽车,导航意味着实时自主指导车辆,即不需要人类干预即通过关键任务,例如检测和识别物体,识别交通信号和标志,预测对象行为,预测对象行为,维护车道,维持和计划途径,并采取适当的态度,并采取适当的决定,>零售
>>>>>>>>>>>
>一些复杂的模型带有内置的解释性,而某些模型则依靠外部工具为此。如今,有几种可用的模型无关工具可以帮助我们添加模型解释性。我们将更深入地研究可用的两个此类工具。>
>改善ML和AI模型的工具解释性和解释性> 任何提供与模型决策过程以及模型预测中功能贡献有关的信息的工具均非常有帮助。通过可视化可以使解释更加直观。
>
石灰(局部解释模型 - 敏捷的解释)
>在假设可以使用一个简单的可解释模型来解释复杂模型的内部工作原理的假设。简单的可解释模型可以是简单的线性回归模型或决策树模型。在这里,我们利用一个简单的线性回归模型作为一种可解释的模型来使用石灰/塑形说明为复杂模型生成解释。
。石灰也称为local可解释的模型敏捷的解释,一次在单个观察结果上本地在本地进行了解释,并有助于我们了解该模型如何预测该观察结果的得分。它通过使用原始观测值的特征的扰动值创建合成数据来起作用。
什么是扰动数据及其如何创建?较小的内核大小意味着邻域很小,最接近原始值的点将显着影响解释,而对于较大的内核大小,遥远的点可能会导致石灰解释。
更广泛的邻里大小将导致更精确的解释,但可以帮助发现数据中的一些更广泛的趋势。有关更精确的本地解释,应优先考虑小社区尺寸。
通过下面的图(图1),我们试图对扰动的值,内核大小和邻域进行一些直觉。
。 在讨论中,我们使用了BigMart数据集中的数据示例,这是一个回归问题。我们利用了石灰的表格数据。
>>从BigMart数据集考虑观察#0。该观察值具有13值的特征“ item_type”。我们计算了此功能的平均值和标准偏差,我们的平均值为7.234,标准偏差等于4.22。这在上图中显示。然后,我们计算出等于1.366的z得分。
> z得分左侧的区域为我们提供了将低于x的特征的值%。对于1.366的Z分数,该功能的值约为91.40%,该功能将低于x = 13。因此,我们得到一个直觉,即对于此功能,内核宽度必须低于x = 13。而且,内核宽度将有助于控制邻里的扰动数据的大小。 图2下面的
显示了BigMart数据集中的三个原始测试数据点,我们认为这些数据点是为了获得石灰过程的直觉。 XGBoost是一个复杂的模型,用于在原始观测值实例上生成预测。> 在本文中,我们将使用BigMart预处理和编码数据集中的前3个记录来提供示例和解释以支持讨论。
石灰距离公式
内部使用原始数据点和附近点之间的距离,并使用欧几里得距离计算距离。假设点x = 13具有坐标(x1,y1),而邻域中的另一个点具有坐标(x2,y2),使用以下方程式计算这两个点之间的欧几里得距离:
下图(图4)显示了蓝色的扰动数据点和原始值作为红色数据点。距原始数据点较短距离的扰动数据点将对石灰解释更具影响力。
上面的方程式考虑2d。可以为具有n个尺寸数的数据点得出类似的方程。
>内核宽度有助于石灰确定为特征选择扰动值的邻域的大小。随着值或数据点偏离原始值,它们在预测模型结果方面的影响就会降低。>
下图(图6)显示了扰动的特征值,以及它们与原始值的相似性得分以及使用XGBoost模型的扰动实例预测,图(图5)显示了黑匣子可解释的简单模型(线性回归)的信息。
>内置的解释性和解释性如何在复杂模型中起作用
>
以来,我们将XGBoost用作复杂的模型,因此我们在下面讨论了其内置模型的解释性。 XGBOOST为我们提供了绘制决策树的功能,以将直觉纳入模型的全局决策及其对预测的重要性。功能重要性返回功能列表,按照其对模型结果的贡献意义的顺序。
首先,我们启动了XGBoost模型,然后使用训练集的独立和目标功能对其进行了训练。 XGBoost模型的内置解释性特征用于获得对模型的见解。绘制XGBoost内构建的说明使用以下源代码:
# plot single tree plot_tree(xgbr_model) plt.figure(figsize=(10,5)) plt.show()
>从上面的XGBoost模型树中,我们可以了解模型的决策以及其用于分类数据并做出最终预测的条件规则。从上面看来,对于此XGBoost模型,功能item_mrp对结果做出了最大的贡献,其次是决策中的outlet_type。我们可以使用XGBoost的特征重要性来验证这一点。
>
源代码以显示功能重要性
>使用内置说明显示XGBoost模型的功能重要性,请使用以下源代码。
# feature importance of the model feature_importance_xgb = pd.DataFrame() feature_importance_xgb['variable'] = X_train.columns feature_importance_xgb['importance'] = xgbr_model.feature_importances_
# feature_importance values in descending order feature_importance_xgb.sort_values(by='importance', ascending=False).head()
>这是外部解释性工具(例如石灰和外形)可以有用的地方,并补充XGBoost模型的解释性,并提供有关特征贡献或功能影响方向的信息。对于没有内置功能来解释模型决策过程的模型,Lime有助于添加此能力,以解释其对本地和全球实例的预测决策。
lime模型的决策如何起作用以及如何解释其解释?要安装石灰库,使用以下代码:
>方法1:如何使用复杂的XGBR模型实现和解释石灰解释?
>直接使用复杂模型(例如XGBoost)使用以下代码:这将产生一个看起来如下图的输出。
>
# plot single tree plot_tree(xgbr_model) plt.figure(figsize=(10,5)) plt.show()
>此外,Lime通过提供模型将数据分配进行观察的特征级条件规则而进一步发展。
# feature importance of the model feature_importance_xgb = pd.DataFrame() feature_importance_xgb['variable'] = X_train.columns feature_importance_xgb['importance'] = xgbr_model.feature_importances_
的模型预测
在上面的图(图13)中,左侧的图表示所有观测值的预测值(min至max)的总范围,并且中心的值是该特定实例的预测值,即观察。>中心的图显示了蓝色代表对模型预测的负面影响,并且对本地实例的模型预测的积极贡献特征由颜色橙色表示。具有特征的数值值表示特征的扰动值,或者我们可以说它们表示特征对模型预测的贡献的幅度,在这种情况下,它是针对特定观察(#0)或局部实例
。
右上的图表示模型在生成实例的预测时给出的特征重要性的顺序。>方法2:如何使用替代简单LR模型来实现和解释黑匣子模型(XGBR)的石灰解释?
要使用复杂的黑匣子模型(例如XGBoost)实现石灰,我们可以使用替代模型方法。对于替代模型,我们可以使用简单的模型,例如线性回归或决策树模型。石灰在这些简单模型上非常有效。而且,我们还可以将复杂的模型用作带石灰的替代模型。要将石灰与替代简单模型首先使用,我们需要从黑匣子模型中进行预测。
# plot single tree plot_tree(xgbr_model) plt.figure(figsize=(10,5)) plt.show()
# feature importance of the model feature_importance_xgb = pd.DataFrame() feature_importance_xgb['variable'] = X_train.columns feature_importance_xgb['importance'] = xgbr_model.feature_importances_
# feature_importance values in descending order feature_importance_xgb.sort_values(by='importance', ascending=False).head()
上面的代码可用于回归。对于分类问题,必须将模式修改为“分类”。
# install lime library !pip install lime # import Explainer function from lime_tabular module of lime library from lime.lime_tabular import LimeTabularExplainer
note
在执行上面的执行时,我们得到了以下石灰说明,如下图(图13)所示。
# Fit the explainer model using the complex model and show the LIME explanation and score explanation = explainer.explain_instance(X_unseen_test.values[0], xgbr_model.predict) explanation.show_in_notebook(show_table=True, show_all=False) print(explanation.score)
我们立即注意到的一件事是,当我们直接将石灰与XGBoost模型一起使用时,对于观察#0,石灰解释得分较高(71.85%),当我们将其视为黑匣子模型并使用替代LR模型来获取黑匣子模型(XGBOBOST)的lime解释(XGBOBOST),则是一个显着的分数(XGBOBOST)。这表明与替代模型方法相比,观察值中的特征数量将较少,因此,与原始模型的原始模型和石灰相比,使用解释器的预测可能会有一些差异。
观察#0的预测值为2189.59,总体预测值在2053.46和2316.54之间。
使用石灰XGBR的观察#0的预测值为1670.82。如何访问石灰扰动数据?
查看石灰扰动值使用以下代码。上面的输出看起来如下图所示。
# plot single tree plot_tree(xgbr_model) plt.figure(figsize=(10,5)) plt.show()
lime特征的重要性
模型中的每个实例在生成实例的预测时给出了不同的特征。这些确定的模型功能在模型的预测中起着重要作用。特征重要性值表示模型预测的扰动特征值或已确定特征的新幅度。
# feature importance of the model feature_importance_xgb = pd.DataFrame() feature_importance_xgb['variable'] = X_train.columns feature_importance_xgb['importance'] = xgbr_model.feature_importances_
石灰解释得分表明了石灰解释的准确性以及确定的特征在预测模型结果中的作用。较高的可解释分数表明,该模型对观察的识别特征在此实例的模型预测中起着重要作用。从上图(图13),我们可以看到可解释的替代LR模型给观察中确定的特征得分为0.4954。
现在,让我们来研究另一个名为Shapely的工具,因为它为模型添加了解释性。
>另一种用于ML的普遍使用的工具,AI模型的解释是Shap(外形添加说明)。该工具也是模型的不可知论。它的解释基于称为“沙普利价值观”的合作游戏理论概念。在这个游戏理论中,考虑所有玩家的贡献,并根据他们对整体结果的贡献赋予每个玩家的价值。因此,它为模型决策提供了公平且可解释的洞察力。
>根据Shapely的说法,一个球员联盟共同努力取得结果。所有玩家都不相同,每个玩家都有不同的特征,可以帮助他们以不同的方式为结果做出贡献。在大多数情况下,是多个玩家的贡献可以帮助他们赢得比赛。因此,玩家之间的合作是有益的,需要得到重视,不仅应仅取决于单个玩家对结果的贡献。而且,每一层次,从结果中产生的收益应根据玩家的贡献在玩家中分配。塑造ML和AI模型解释工具基于上述概念。它将数据集中的功能视为团队中的个别玩家(观察)。这些联盟在ML模型中共同努力以预测结果,而回报是模型预测。 Shap有助于公平有效地在单个特征(参与者)之间分配结果增长,从而认识到它们对模型结果的贡献。
使用沙普利值
公平分布贡献
在上面的图(图15)中,我们考虑了两名参加比赛的球员,并以奖金的形式获得了结果。两名球员通过组建不同的联盟(C12,C10,C20,C0)参加,并通过每个联盟获得不同的奖品。最后,我们看到了平均平均体重如何帮助我们确定每个玩家对结果的贡献,并在参与者中公平地分配奖金。
在“ i”播放器的情况下,图(图16)中显示的以下方程可用于确定每个播放器或功能的塑性值。
>让我们进一步探索形状库。
>如何安装shap库安装并初始化它?>
如何实现和解释复杂的XGBR模型塑造说明?
如何生成复杂XGBR模型的形状值?
# plot single tree plot_tree(xgbr_model) plt.figure(figsize=(10,5)) plt.show()
形状值看起来如图所示(图-19):
# feature importance of the model feature_importance_xgb = pd.DataFrame() feature_importance_xgb['variable'] = X_train.columns feature_importance_xgb['importance'] = xgbr_model.feature_importances_
> 通过考虑特征的所有可能排列,
shap实现了这一点。它可以计算和比较具有和没有功能的模型结果,从而计算每个特征贡献以及整个团队(所有参与者又称一个特征)。如何实现和解释复杂XGBR模型的摘要摘要图?
Shap摘要图可用于查看Shap特征贡献,其重要性和对结果的影响。
上面的图(图21)显示了BigMart数据的形状摘要图。从上方,我们看到Shap以其重要性顺序排列了Bigmart数据集中的功能。在右侧,我们看到了从顶部的高价值特征和底部排列的低值排列的特征。
# plot single tree plot_tree(xgbr_model) plt.figure(figsize=(10,5)) plt.show()
因此,Shap列出了该模型的整体图,表明每个特征对预测结果的贡献的大小和方向。
如何实现和解释复杂XGBR模型的形状依赖图?
> Shap功能依赖图有助于我们将功能关系与另一个功能解释。在上面的图中,似乎Item_MRP取决于outlet_type。对于outlet_types 1至3,item_mrp的趋势增加,而从上面的utlet_type 0到outlet_type 1,item_mrp的趋势下降。
>。
如何实现和解释复杂XGBR模型的塑造力图? 到目前为止,我们在全球范围内看到了Shap的特征,影响力和决策的特征。塑形力图可用于在当地观察级别中直觉进入模型决策。要利用Shap Force图,我们可以使用以下代码。请记住使用自己的数据集名称。以下代码查看测试数据集的第一个观察结果,即x_unseen_test.iloc [0]。可以更改此数字以查看不同的观察结果。
# plot single tree plot_tree(xgbr_model) plt.figure(figsize=(10,5)) plt.show()
我们可以将上述力图解释为以下。基本值指示使用Shap替代LR模型的本地实例#0的预测值。标记为深粉色的功能是推动预测值更高的功能,而标记为蓝色的特征则将预测推向了较低的值。具有功能的数字是特征原始值。
>
# feature importance of the model feature_importance_xgb = pd.DataFrame() feature_importance_xgb['variable'] = X_train.columns feature_importance_xgb['importance'] = xgbr_model.feature_importances_
从下面的决策图中,我们观察到特征item_mrp对预测结果产生了积极影响。它增加了商品插座销售。同样,utlet_isternifier_out018也通过提高销售额做出了积极的贡献。另一方面,item_type对结果产生负面影响。它减少了商品销售。同样,utlet_istentifier_27也以负面贡献减少了销售。
>>下面的图显示了大市场销售数据的决策图。
>如何使用TreeExplainer实现和解释复杂XGBR模型的塑造力图?
# feature_importance values in descending order feature_importance_xgb.sort_values(by='importance', ascending=False).head()
>使用替代模型(此处使用的线性回归模型)使用Shap解释使用以下代码。线性回归模型是使用黑匣子模型和训练集的独立特征的预测来训练的。
如何使用替代LR模型来实现和解释黑匣子模型的形状摘要图?
# install lime library !pip install lime # import Explainer function from lime_tabular module of lime library from lime.lime_tabular import LimeTabularExplainer
>从上面的黑匣子代替代LR模型的Shap摘要图中,Item_Type和item_MRP是具有总体中性影响的Item_Type的最高贡献功能之一,而item_mrp似乎正在向右手侧伸向右手,表明它有助于增加结果(即ite_e.e.e.e.e.e.e.e.e.outlet_sales。
如何实现和解释黑匣子替代简单LR模型的形状依赖图?输出看起来像下面的。
# plot single tree plot_tree(xgbr_model) plt.figure(figsize=(10,5)) plt.show()
>从上面的图中我们可以说,对于黑匣子替代LR模型,MRP对于出口类型0和1的趋势越来越多,而对于出口类型3的趋势也有所下降。
模型的比较表
Aspect | LIME | SHAP | Blackbox Surrogate LR Model | XGBR Model (Complex) |
---|---|---|---|---|
Explainability | Local-level explainability for individual predictions | Global-level and local-level explainability | Limited explainability, no local-level insights | Limited local-level interpretability |
Model Interpretation | Uses synthetic dataset with perturbed values to analyze model’s decision rationale | Uses game theory to evaluate feature contributions | No local-level decision insights | Global-level interpretability only |
Explanation Score | Average explanation score = 0.6451 | Provides clear insights into feature importance | Lower explanation score compared to LIME XGBR | Higher prediction accuracy but lower explanation |
Accuracy of Closeness to Predicted Value | Matches predicted values closely in some cases | Provides better accuracy with complex models | Low accuracy of closeness compared to LIME | Matches predicted values well but limited explanation |
Usage | Helps diagnose and understand individual predictions | Offers fairness and transparency in feature importance | Not suitable for detailed insights | Better for high-level insights, not specific |
Complexity and Explainability Tradeoff | Easier to interpret but less accurate for complex models | Higher accuracy with complex models, but harder to interpret | Less accurate, hard to interpret | Highly accurate but limited interpretability |
Features | Explains local decisions and features with high relevance to original data | Offers various plots for deeper model insights | Basic model with limited interpretability | Provides global explanation of model decisions |
Best Use Cases | Useful for understanding decision rationale for individual predictions | Best for global feature contribution and fairness | Used when interpretability is not a major concern | Best for higher accuracy at the cost of explainability |
Performance Analysis | Provides a match with XGBR prediction but slightly lower accuracy | Performs well but has a complexity-accuracy tradeoff | Limited performance insights compared to LIME | High prediction accuracy but with limited interpretability |
>同样,在分析石灰扰动值时,我们对石灰选择的特征的方式进行了一些直觉,然后分配给它们的扰动权重,并尝试使预测更接近原始。
>带来所有的石灰模型和观测值(对于排名前3的行和选定的功能)。
>
从上面开始,我们可以看到,对于观察#0,原始XGBR模型预测和石灰XGBR模型预测是匹配的,而对于相同的原始特征值,BlackBox替代模型预测观察#0也是不对的。同时,石灰XGBR模型展示了高解释得分(特征与原始功能的相似性)。 复杂石灰XGBR模型的解释得分的平均值为0.6451,黑盒替代LR石灰模型的平均值为0.5701。在这种情况下,石灰XGBR的平均解释得分高于黑匣子模型。
预测值的亲密度的准确性下面我们分析了三个模型的预测值的亲密度的精度。
通过简单的LR模型和石灰复合物XGBR模型的预测值的%精度是相同的,两种模型都达到了100%的观测精度。这表明预测值与复杂XGBR模型做出的实际预测非常匹配。通常,较高的亲密度精度反映了一个更准确的模型。
>比较预测和实际值时,会观察到差异。对于观察#3,预测值(2174.69)显着高于实际值(803.33)。同样,计算了石灰复合物XGBR和BlackBox替代LR模型的亲密度精度。结果突出显示了各种性能指标,如表中所述。>
>从上方我们看到,对于观察1,BlackBox替代LR模型表现最好。同时,对于其他两个观察结果(#2和#3),两个模型性能均相等。
。石灰复合物XGBR模型的平均性能约为176,BlackBox替代LR模型约为186。
因此,我们可以说石灰复杂模型的精度<石灰黑盒替代LR模型精度。
石灰和外形是提高机器学习和AI模型的解释性的强大工具。它们使复杂或黑框模型更加透明。石灰专门针对模型的决策过程提供本地级别的见解。 Shap提供了更广泛的视野,并在全球和地方层面上都解释了功能贡献。尽管石灰的准确性可能并不总是与XGBR这样的复杂模型匹配,但对于理解单个预测而言是无价的。 另一方面,Shap的基于游戏理论的方法促进了公平和透明度,但有时很难解释。 BlackBox模型和XGBR等复杂模型提供了更高的预测准确性,但通常以降低解释性为代价。最终,这些工具之间的选择取决于预测准确性和模型可解释性之间的平衡,这可能会根据所使用模型的复杂性而有所不同。
钥匙要点
常见问题
以上是ML和AI模型解释性和解释性的详细内容。更多信息请关注PHP中文网其他相关文章!