机器学习模型经常被看作是无法破译的黑盒子。因为学习者被训练成对 "是 "和 "不是 "类型的问题做出反应,而不解释答案是如何得到的。在许多应用中,对答案是如何实现的解释对于保证信心和公开性至关重要。可解释的人工智能是指在使用人工智能技术(AI)方面的策略和程序,使人类专家能够理解解决方案的结论。本文将重点介绍使用OmniXAI解释机器学习者。以下是将要涉及的主题。
内容表
- 可解释的人工智能(XAI)的目标是什么?
- 可解释的人工智能的分类
- 用OmniXAI解释机器学习模型
"可解释 "是一种需求和期望,它增加了内在AI模型 "决定 "的透明度。 让我们仔细看看可解释AI的目标。
可解释的人工智能(XAI)的目标是什么?
XAI的主要目标是回答有关获得反应的 "wh"(为什么、何时、什么、如何等)问题。XAI可以提供可靠性、透明度、信心、信息和公平性。
透明度和信息
通过提出一个普通人可以理解的理由,XAI可以提高透明度和公平性。一个透明的人工智能模型的最低需求是它的表达能力足以让人类理解。透明度对于评估XAI模型的性能和原理至关重要。透明性可以确保任何错误的对模型的训练都会产生预测的弱点,从而给终端用户带来巨大的人身损失。虚假的训练可能被用来改变任何AI/ML模型的概括性,导致任何一方获得不道德的收益,除非它被明确指出。
可靠性和信心
导致人类依赖任何特定技术的最重要方面之一是信任。每一个预测或结论的逻辑性和科学性的理由导致人们更喜欢人工智能/ML系统的预测或结论。
公平性
由于AI/ML模型中的偏差和方差权衡,XAI促进了公平性,并在论证或解释过程中协助减轻预测的偏差(偏差-方差权衡)。
你是否在寻找一个完整的数据科学中使用的Python库,在此查看.
可解释人工智能的分类
可解释的人工智能(XAI)技术被分为透明方法和事后方法两大类。事后方法是根据数据类型进一步划分的。
事后方法
当存在非线性联系或数据复杂性增加时,事后方法对解释模型的复杂性很有效。在这种情况下,当数据和特征不遵循明确的联系时,事后技术是一个方便的工具,可以解释模型学到了什么。
基于统计和可视化的特征总结显示是面向结果的可解释性技术的基础。统计学展示表示每个特征的统计数据,每个特征的相关性根据其在预测中的权重来衡量。
事后XAI方法将经过训练和/或测试的人工智能模型作为输入,并以特征重要性分数、规则集、热图或普通语言的形式产生模型内部运作和决策逻辑的可理解的表述。许多事后方法试图揭示特征值和预测模型输出之间的相关性,而不考虑模型的内部结构。这有助于用户识别ML工作中最相关的特征,量化特征的价值,复制黑箱模型的选择,以及识别模型或数据的偏差。
例如,局部可解释模型的解释,通过扰动真实样本,观察ML模型在扰动实例下的输出变化,并建立一个局部的简单模型,近似于原始模型在原始样本附近的行为,来提取特征的重要性分数。模型不可知和特定模型的事后技术是事后程序的两种类型。关于特定深度学习模型的学习方法和内部结构的可解释性限制由特定模型的策略来支持。为了理解学习机制并给出解释,模型不可知的方法使用模型输入和预测的配对分析。
有人指出,全局技术可以解释所有的数据集,但局部方法只限于某些类型的数据集。另一方面,模型不可知的工具可以被用于任何人工智能/ML模型。在这种情况下,对输入和结果的配对检查对可解释性至关重要。模型的具体策略,如特征相关性、基于条件的解释、基于规则的学习和显著性地图,在下面的章节中都有涉及。
透明的方法
透明的方法,如逻辑回归、支持向量机、贝叶斯分类器和K最近的邻居,提供了具有用户本地特征权重的理由。这类方法包括符合三个特性的模型:算法透明、可分解性和可模拟性。
-
可模拟性指的是模拟一个必须由人类执行的模型的能力。模型的复杂程度对人的仿真是很重要的。例如,一个稀疏的矩阵模型比密集的矩阵模型更容易理解,因为稀疏的矩阵模型更容易被人们合理化和感知。
-
可分解性指的是模型所有方面的可解释性,从数据输入到超参数和内在的计算。这些特征确立了一个模型的行为和性能极限。复杂的输入特征是难以理解的。由于这些限制,这种模型不属于透明模型的范畴。
-
算法的透明度规定了一个算法从输入提供的数据到最终判断或分类的可解释性。决策过程对用户来说应该是透明的。例如,线性模型被认为是透明的,因为误差图很容易理解和解释。用户可以通过可视化的方式了解模型在不同情况下的反应。
透明模型是通过以下可解释的人工智能技术实现的。
- 线性/逻辑回归(LR)是一种用于预测服从二元变量特征的因变量的透明模型。这个策略是基于预测者和被预测变量之间的灵活配合的假设。该模型要求用户熟悉回归技术及其工作机制以理解逻辑回归。
- 决策树是一种透明的技术,可以满足大背景下的透明度要求。它是一种具有分层结构的决策工具。较小规模的决策树模拟起来很简单。树中的层数增加了它的算法透明度,但减少了它的可刺激性。训练有素的决策树的组装可以有效地克服因其概括能力差而导致的弱的概括性质量。由于这一变化,现在的决策树工具的透明度降低了。
- K-Nearest Neighbours(KNN)是一种基于投票的方法,通过对测试样本的最近邻居的类别进行投票来预测测试样本的类别。KNN投票是基于实例的距离和相似性。KNN的透明度由特征、参数N和用于量化相似度的距离函数决定。较大的K值对用户的模型模拟有影响。复杂的距离函数限制了模型的可分解性和算法执行的透明度 。
- 一个基于规则的学习模型指定了一个将用于训练模型的规则。该规则可以用简单的条件if-else形式或一阶预测逻辑来定义。规则的格式是由知识库的类型决定的。这类模型得益于两个规则。首先,由于规则是用语言文字写成的,用户可能很容易掌握它们。第二,它比传统的基于规则的范式更能够处理不确定性。模型中的规则数量在不牺牲模型的可解释性和透明度的情况下提高了效率。
- 贝叶斯模型是概率模型,它包含了因变量和自变量集合之间的条件依赖性的概念。贝叶斯模型对于了解条件概率的终端用户来说足够简单。贝叶斯模型对于所有三个可分解的、算法透明的和人类模拟的特质都是足够充分的。贝叶斯模型的透明度和模拟性可能会受到复杂变量依赖性的影响。
用OmniXAI解释机器学习模型
OmniXAI是一个开源的可解释人工智能包,为各种机器学习模型提供全方位的解释能力。OmniXAI可以评估数据分析和探索中的特征相关性和数据不平衡问题,协助开发者迅速删除重复的特征并识别潜在的偏差问题。OmniXAI可以通过研究特征和目标之间的联系,在特征工程中找到基本特征,协助用户理解数据方面,并做特征预处理。OmniXAI在模型训练和评估中提供了多种解释,如特征归属解释、反事实解释和基于梯度的解释,以完全考察为表格、视觉、NLP或时间序列任务创建的模型的行为。
本文将重点介绍数据分析、特征选择和用OmniXAI解释回归模型。本文使用的数据与音乐有关,是Spotify列出的前2000首歌曲,问题是要预测歌曲的流行程度。
让我们从安装OmniX AI开始:
! pip install omnixai
导入必要的库
import pandas as pd
import numpy as np
from omnixai.data.tabular import Tabular
from omnixai.explainers.data import DataAnalyzer
from omnixai.preprocessing.base import Identity
from omnixai.preprocessing.encode import LabelEncoder
from omnixai.preprocessing.tabular import TabularTransform
from omnixai.explainers.tabular import TabularExplainer
from sklearn.model_selection import train_test_split
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.metrics import mean_squared_error,r2_score
读取数据
omnixai的开发者推荐使用Tabular来描述一个表格数据集,该数据集可能由pandas数据框或NumPy数组生成。为了从pandas数据框架中构建一个Tabular实例,必须指定数据框架、类别特征名称和目标/标签列名称。omnixai.preprocessing "包包含了各种对Tabular数据有用的预处理程序:
data = pd.read_csv('/content/drive/MyDrive/Datasets/songs_normalize.csv')
data_utils=data.drop(['artist','song'],axis=1)
data_utils['explicit']=data_utils['explicit'].astype(str)
tabular_data = Tabular(
data_utils,
feature_columns=data_utils.columns,
categorical_columns=[ 'genre','explicit'],
target_column='popularity'
)
对于数据分析,建立一个名为DataAnalyzer的解释。在DataAnalyzer中,参数解释器给出了我们希望使用的分析器的名称,例如,"correlation "用于特征相关分析。在库中,数据分析被归类为 "全局解释"。"全局解释 "被调用,带有指定分析器的额外参数,用于创建解释:
explainer = DataAnalyzer(
explainers=["correlation", "mutual", "chi2"],
data=tabular_data
)
explanations = explainer.explain_global()
Omnix AI使用plotly作为绘图器,所以所有的图形都是互动的。这里我们正在绘制相关图和一些与特征重要性有关的图:

印度分析杂志

印度分析杂志

印度分析杂志
建立一个回归模型
transformer = TabularTransform(
target_transform=Identity()
).fit(tabular_data)
TabularTransform是一个专门为表格式数据建立的转换。它默认将分类特征转换为单次编码,并保留了连续值特征。TabularTransform的转换方法将把一个Tabular实例转换成一个NumPy数组。如果Tabular实例包含一个目标列,那么这个目标将是修改后的NumPy数组的最后一列。
对于这篇文章,使用sklearn的梯度提升调节器模型
gb_r = GradientBoostingRegressor()
gb_r.fit(x_train, y_train)
pred=gb_r.predict(x_test)
print("RMSE = ",np.round(np.sqrt(mean_squared_error(y_test,pred)),3))
print("R2_score= ",r2_score(y_test,pred))

印度分析杂志
通过初始化TabularExplainer来解释模型的结果。在初始化时,有以下需要定义:
- 解释者:将要使用的解释器的名称。本文利用了lime、shap和PDP。
- 数据:用来启动解释器的信息。训练数据集是用来训练机器学习模型的。
- 模型:要解释的机器学习模型,在这种情况下,是一个梯度提升的回归器。
- 预处理:预处理函数将Tabular实例转换为模型输入。
- 模式:该文章的任务类型是 "回归"。
preprocess = lambda z: transformer.transform(z)
explainers = TabularExplainer(
explainers=["lime", "shap", "pdp"],
mode="regression",
data=tabular_data,
model=gb_r,
preprocess=preprocess,
params={
"lime": {"kernel_width": 3},
"shap": {"nsamples": 100}
}
)
一旦解释器被初始化,通过使用这些代码运行测试实例:
test_instances = transformer.invert(x_test[0:5])
local_explanations = explainers.explain(X=test_instances)
global_explanations = explainers.explain_global()
绘制结果,以可视化可解释性
index=0
print("LIME results:")
local_explanations["lime"].ipython_plot(index)
print("SHAP results:")
local_explanations["shap"].ipython_plot(index)
print("PDP results:")
global_explanations["pdp"].ipython_plot(
features=['duration_ms', 'explicit', 'year', 'danceability',
'energy', 'key', 'loudness', 'mode', 'speechiness', 'acousticness',
'instrumentalness', 'liveness', 'valence', 'tempo', 'genre

印度分析杂志

印度分析》杂志

印度分析杂志
正如在LIME测试中所观察到的,五个特征(乐器、持续时间、能量、声学和流派)是重要的,对解释学习者的结果有积极影响。同样,在Shap测试中,四个特征(持续时间、响度、声学、体裁和键)对可解释性有更大的影响。
结论
可解释的人工智能的基础是透明的ML模型,它本身只是部分可解释的,而事后的可解释方法则使模型更可解释。通过这篇文章,我们已经了解了可解释人工智能的目标和分类,并通过OmniXAI实现了可解释人工智能。