XAI的目标是为模型的行为和决策提供有意义的解释。本文整理了目前能看到的10个用于可解释AI的Python库。什么是XAI?XAI,ExplainableAI是指能够为人工智能(AI)的决策过程和预测提供清晰易懂的解释的系统或策略。XAI的目标是为他们的行为和决策提供有意义的解释,这有助于增加信任、提供问责制和模型决策的透明度。XAI超越了解释,以一种更容易为用户提取和解释推理的方式对ML进行试验。在实践中,XAI可以通过多种方式实现,例如使用特征重要性度量、可视化技术,或者通过构建本质上可解释的模型,例如决策树或线性回归模型。方法的选择取决于所解决问题的类型和所需的可解释性水平。AI系统用于越来越多的应用程序,包括医疗保健、金融和刑事司法,在这些应用程序中,AI对人们生活的潜在影响很大,因此了解做出特定决定的原因至关重要。由于这些领域的错误决策代价高昂(高风险),XAI变得越来越重要,因为即使是AI做出的决策也需要仔细检查其有效性和可解释性。可解释性实践数据准备的步骤:此阶段包括数据的收集和处理。数据应该是高质量的、平衡的并且代表正在解决的现实问题。拥有平衡、有代表性和干净的数据可以减少未来保持AI可解释性的努力。模型训练:模型在准备好的数据上进行训练,可以是传统的机器学习模型,也可以是深度学习神经网络。模型的选择取决于要解决的问题和所需的可解释性水平。模型越简单越容易解释结果,但是简单模型的性能不会很高。模型评估:选择合适的评估方法和性能指标对于保持模型的可解释性是必要的。在此阶段评估模型的可解释性也很重要,以确保它为其预测提供有意义的解释。解释生成:这可以使用各种技术来完成,例如特征重要性度量、可视化技术,或通过构建固有的可解释模型。解释验证:验证模型生成的解释的准确性和完整性。这有助于确保解释是合理的。部署和监控:XAI的工作并不止于模型创建和验证。它需要在部署后进行持续的可解释性工作。在现实世界的监控中,定期评估系统的性能和可解释性非常重要。1.SHAP(SHapleyAdditiveexPlanations)SHAP是一种博弈论方法,可以用来解释任何机器学习模型的输出。它使用博弈论中的经典Shapley值及其相关扩展将最佳学分分配与本地解释联系起来。2.LIME(LocalInterpretableModel-agnosticExplanations)LIME是一种独立于模型的方法,它通过围绕特定预测局部近似模型的行为来工作。LIME试图解释机器学习模型在做什么。LIME支持解释文本分类器、表格数据分类器或图像的单个预测。3.Eli5ELI5是一个Python包,可帮助调试机器学习分类器并解释其预测。它为以下机器学习框架和包提供支持:scikit-learn:ELI5可以解释scikit-learn线性分类器和回归器的权重和预测,可以将决策树打印为文本或SVG,显示特征重要性,并解释决策树和基于树集成的预测。ELI5还理解scikit-learn中的文本处理程序并相应地突出显示文本数据。Keras-通过Grad-CAM直观地解释图像分类器预测。XGBoost-显示特征的重要性,解释XGBClassifier、XGBRegressor和XGBoost.boost的预测。LightGBM-显示特征的重要性,解释LGBMClassifier和LGBMRegressor的预测。CatBoost:显示CatBoostClassifier和CatBoostRegressor的特征重要性。lightning-解释闪电分类器和回归器的权重和预测。sklearn-crfsuite。ELI5允许检查sklearn_crfsuite.CRF模型的权重。基本用法:Show_weights()显示模型的所有权重,Show_prediction()可用于检查模型的个体预测ELI5还实现了一些检查黑盒模型的算法:TextExplainer使用LIME算法来解释任何模型的预测文本分类器。排列重要性方法可用于计算黑盒估计器的特征重要性。4.ShapashShapash提供了几种类型的可视化,可以更容易地理解模型。摘要用于理解模型提出的决策。该项目由MAIF数据科学家开发。Shapash主要通过一组优秀的可视化来解释模型。Shapash通过web应用机制工作,可以与Jupyter/ipython完美集成。fromshapashimportSmartExplainerxpl=SmartExplainer(model=regressor,preprocessing=encoder,#可选:编译步骤可以使用inverse_transform方法features_dict=house_dict#可选参数,dict指定特征名称的标签)xpl.compile(x=Xtest,_y_pred,y_target=ytest,#可选:允许显示真值vs预测值)xpl.plot.contribution_plot("OverallQual")5.AnchorsAnchors使用称为锚点的高精度规则来解释复杂模型的行为,代表局部“完整”的预测条件。该算法可以有效地计算任何具有高概率保证的黑盒模型的解释。Anchors可以被视为LIMEv2,其中LIME的一些限制(例如无法为看不见的数据实例拟合模型)已得到纠正。锚点使用局部区域而不是每个单独的观察点。它在计算上比SHAP更轻,因此可用于高维或大型数据集。但是有一些限制是标签只能是整数。6.BreakDownBreakDown是一种可以用来解释线性模型预测的工具。它的工作原理是将模型的输出分解为每个输入特征的贡献。这个包中有两个主要方法。Explainer()andExplanation()model=tree.DecisionTreeRegressor()model=model.fit(train_data,y=train_labels)#necessaryimportsfrompyBreakDown.explainerimportExplainerfrompyBreakDown.explanationimportExplanation#makeexplainer对象exp=Explainer(clf=model,data=train_data,colnames=feature_names)#你想从数据中解释什么(选择一个观察)explanation=exp.explain(observation=data[302,:],direction="up")7,Interpret-TextInterpret-Text将社区开发的用于NLP模型的可解释性技术与用于查看结果的可视化面板相结合。可以在多个最先进的解释器上运行实验,并对它们进行比较分析。该工具包可以在每个标签或本地每个文档的基础上全局解释机器学习模型。以下是此包中可用的解释器列表:ClassicalTextExplainer-(默认:用于逻辑回归的词袋)UnifiedInformationExplainerIntrospectiveRationaleExplainer它的好处是支持CUDA、RNN和BERT等模型。并且可以生成文档中特征重要性的面板frominterpret_text.widgetimportExplanationDashboardfrominterpret_text.explanation.explanationimport_create_local_explanation#创建本地解释local_explanantion=_create_local_explanation(classification=True,text_explanation=True,local_importance_values=feature_modelth_importance_model_task="classification",features=parsed_sentence_list,classes=list_of_classes,)#DashitExplanationDashboard(local_explanantion)8、aix360(AIExplainability360)AIExplainability360工具包是一个开源库,这个包是由IBM和在他们的平台上广泛使用。人工智能可解释性360包含一套全面的算法,涵盖不同维度的解释以及代理可解释性指标。该工具包结合了以下论文中的算法和指标:TowardsRobustInterpretabilitywithSelf-ExplainingNeuralNetworks,2018。refBooleanDecisionRulesviaColumnGeneration,2018。refExplanationsBasedontheMissing:TowardsContrastiveExplanationswithPertinentNegatives,2018。SimpleImprovingModelswith置信度概况,2018年。refEfficientDataRepresentationbySelectingPrototypeswithImportanceWeights,2019。refTED:教AI解释其决策,2019。refVariationalInferenceofDisentangledLatentConceptsfromUnlabeledData,2018。refGeneratingContrastiveExplanationswithMonotonicAttributeFunctions,2019.refGeneralizedLinearRuleModels,2019.ref9,OmniXAIOmniXAI(OmniexplanableAI的缩写),解决了在实践中解释机器学习模型产生的判断的几个问题。它是一个用于可解释人工智能(XAI)的Python机器学习库,提供了全方位的可解释人工智能和可解释机器学习功能,可以解决实践中解释机器学习模型决策的诸多痛点。OmniXAI旨在成为数据科学家、ML研究人员和从业者的一站式可解释AI综合库。fromomnixai.visualization.dashboardimportDashboard#启动可视化仪表板dashboard=Dashboard(instances=test_instances,#要解释的实例local_explanations=local_explanations,#设置局部解释global_explanations=global_explanations,#设置全局解释prediction_explanations=prediction_explanations,#设置预测指标class_names=class_names,#Setclassnamesexplainer=explainer#ThecreatedTabularExplainerforwhatifanalysis)dashboard.show()10、XAI(eXplainableAI)XAI库由TheInstituteforEthicalAI&ML维护,它根据ResponsibleMachineLearning的8条原则开发。它仍处于alpha阶段,因此请不要将其用于生产工作流程。
