版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章可解释性模型01第8章可解释性模型理解模型行为,读懂贡献、曲线与样本解释数据挖掘基础及应用本章学习路线02问题与范围区分全局、局部,明确解释对象。模型与归因理解透明模型,手算Shapley分配。局部与曲线比较SHAP、LIME,观察PDP和ICE。样本与检验理解反事实和原型,复核解释的边界。学习目标:能按问题选择解释方法,读懂主要图形,并核对基线、输出单位、目标类别与数据范围。图8-1可解释性模型知识结构图模型解释的用途03模型为什么这样预测同样预测为高风险,模型可能依赖不同特征。解释有助于检查模型使用的信息,发现可疑特征或数据泄漏,与业务人员核对预测依据。解释与性能共同检查测试指标反映预测表现。解释反映所选方法下的模型行为。解释看起来合理,仍需核查预测误差和适用范围。对异常解释应回到数据与模型。特征归因描述模型如何利用信息。它本身不能证明某个变量是现实结果的原因。图8-2可解释性重要性全局解释与局部解释04全局:模型整体的行为哪些特征在一批样本中贡献较大?某个特征变化时,平均预测如何变?常见结果:平均绝对SHAP值、PDP,或简短树与规则的整体结构。局部:一个或一组预测这个样本为什么得到该预测?与相似样本的解释有何差别?常见结果:单样本SHAP、LIME、反事实。一组局部解释可用于分群比较。单个样本的最大贡献特征,不一定是全局排名第一的特征。聚合时要说明样本范围和统计方式。解释方法的分类维度05维度一侧另一侧生成时机本质可解释:直接读取结构事后解释:训练后分析模型模型依赖模型特定:依赖结构或参数模型无关:主要调用预测接口作用范围全局:关注整体或子群局部:关注特定预测输出形式系数、规则、特征统计曲线、贡献图、对照样本这些维度可以交叉组合。事后方法也能用于简单模型,且事后方法不一定与模型结构无关。预测准确性与解释保真度06比较对象回答的问题核对依据模型预测与真实标签原模型预测是否准确独立数据上的预测指标代理解释与原模型解释是否近似原模型所选邻域或样本集上的拟合多次解释结果解释是否稳定更换采样、种子或相近样本解释与阅读者能否理解且适用于当前问题复杂度、范围与业务核查代理模型可以忠实近似一个预测错误的原模型。解释保真度和预测准确性需要分开评价。线性回归与逻辑回归的解释07线性回归ŷ=β₀+Σⱼβⱼxⱼ。在模型其他输入保持不变时,xⱼ增加1单位,预测变化βⱼ。系数单位取决于特征和目标单位。共线性会影响系数的稳定性。逻辑回归log[p/(1−p)]=β₀+Σⱼβⱼxⱼ。βⱼ描述对数优势的变化。exp(βⱼ)是对应的优势比。概率的变化还取决于原始位置,不能直接把βⱼ当作概率增量。系数解释以当前模型和特征编码为前提。比较不同量纲特征时,不能只按原始系数绝对值排序。系数解释的数值例子08回归:单位需要明确预测费用=100+20×次数。次数从2变为3,预测费用从140变为160。模型中的单位变化为20。该关系来自设定的预测公式。分类:优势与概率不同设logit(p)=−1+0.5x。x从0变为1。优势乘以exp(0.5)≈1.65。概率从0.269变为0.378。概率增加约0.109,而非0.5。本页为构造公式的计算例子。保持其他输入不变的模型比较,不自动具有干预意义。结构可解释的模型09模型形式主要解释内容解释的限制短决策树与规则分裂阈值、路径和叶节点树过深或规则过多时难阅读GLM链接函数尺度上的加性项要说明分布、链接与编码GAMg(E[y|x])=β₀+Σⱼfⱼ(xⱼ)基本加性结构不含任意交互RuleFit规则指示变量与线性项的组合需同时看规则条件和系数线性SVM线性决策分数与特征权重核SVM需采用相应解释方法结构复杂度和预测性能之间没有固定的单一排序。可解释程度取决于模型形式、大小与阅读任务。图8-3可解释的模型不同解释方法回答的问题10问题可先使用的方法解释单位如何分配相对基线的预测差异Shapley/SHAP特征贡献当前样本附近模型如何变化LIME局部代理模型改变某特征时平均预测如何变化PDP平均预测曲线不同样本的响应有何差异ICE逐样本预测曲线哪些输入改动使预测改变反事实解释输入对照样本先确定要解释的输出、样本范围和比较基线,再选择方法。不同方法的数值不能直接混用。Shapley值的顺序边际贡献11φᵢ=所有加入顺序下的平均边际贡献加入一个联盟后的变化设S为玩家i加入前已有的集合。边际贡献为v(S∪{i})−v(S)。同一个玩家的贡献可能随S变化。对全部排列中的边际贡献求平均。分配的含义各玩家分配之和为v(全部玩家)−v(空集)。先定义联盟价值v(S),再讨论如何分配总价值。枚举排列有M!种顺序。也可按子集加权并复用联盟价值,涉及约2^M个子集,具体算法成本另行分析。例8.1:三城镇联合建厂的费用12本课直接使用教材给出的舍入费用,统一核算节约额。城1与3也可选择分别建厂,因此该联盟的最优节约为0。图8-4三城镇地理位置示意图方案费用与分别建厂相比城1、2、3各自建厂230+160+230=620基准方案城1与2联合,城3单独350+230=580节约40城2与3联合,城1单独365+230=595节约25城1与3联合,城2单独463+160=623高于分别建厂三城镇共同建厂556节约64例8.1:联盟价值表13联盟Sv(S)解释空集、{1}、{2}、{3}0未产生合作节约{1,2}40230+160−350{2,3}25160+230−365{1,3}0选择单独建厂,避免费用增加{1,2,3}64620−556价值函数允许联盟内部继续采用分别建厂等较便宜方案。后续分摊均基于这一张固定价值表。例8.1:六种顺序的边际节约14加入顺序城1边际贡献城2边际贡献城3边际贡献1230402413206402134002423139025312064032139250例如顺序1、2、3:城1加入时贡献0,城2带来40,城3再带来64−40=24。每行合计均为64。例8.1:节约分配与最终出资15城镇单独建厂费用Shapley节约份额最终出资城123019.67210.33城216032.17127.83城323012.17217.83合计62064.00556.00未舍入的出资为210⅓、127⅚、217⅚,合计556。表中逐项保留两位小数,显示合计可能相差0.01。例8.2:三位参与者的合作游戏16联盟收益空集及任意单人0{A,B}10{B,C}6{A,C}4{A,B,C}10平均边际贡献的结果A:3.667。B:4.667。C:1.667。三人合计为10。三人联盟先满足A与B条件。原收益函数采用if/elif,因此三人联盟收益是10。若改成多个收益相加,必须重新定义游戏并重算分配。例8.2:按全部排列计算Shapley值17fromitertoolsimportpermutationsplayers=['A','B','C']phi=dict.fromkeys(players,0.0)orders=list(permutations(players))fororderinorders:S=set()foriinorder:delta=game_value(S|{i})-game_value(S)phi[i]+=delta/len(orders)S.add(i)print(phi)集合与边际贡献先定义game_value,收益采用上一页表格。遍历6种排列。每次只增加一个玩家。加入前后的收益差,累计后按排列数平均。本代码适合小规模教学。参与者增多后,应考虑子集复用、采样估计或与模型结构匹配的专用算法。SHAP的基线与特征贡献18f(x)=φ₀+Σⱼφⱼ(x)玩家与联盟价值把输入特征看作玩家。联盟价值取决于如何处理缺失特征。可用背景样本替换未固定的特征,并对模型预测取平均。基线与特征贡献φ₀表示所选定义下的基线输出。φⱼ表示相对基线的分配贡献。正值把所解释输出推高。负值把所解释输出拉低。背景数据、特征依赖处理和输出尺度共同定义归因问题。基线通常不为0,也不一定取全部数据的均值。SHAP加法分解的手算例子19项归因值(对数优势单位)含义基线φ₀−1.00背景平均输出贷款额+0.80相对基线推高输出信用分+0.70本例信用分低于背景均值年收入−0.20本例收入高于背景均值年龄、性别+0.10、0.00按各自特征贡献分配最终输出0.40−1+0.8+0.7−0.2+0.1教学模型为g(x)=−1+0.8x₁−0.7x₂−0.4x₃+0.1x₄,背景各列均值为0。样本为(1,−1,0.5,1,1)。输出尺度:分数与概率20本例分解的是logit分数基线分数为−1。贡献之和为1.4。最终分数为0.4。分数相加后,再做Sigmoid:p=1/(1+exp(−0.4))≈0.599。概率空间需另行定义Sigmoid(−1)≈0.269。概率变化约为0.330。1.4是分数差,不能直接说概率增加140%。解释概率时需使用对应输出设置。SHAP值的单位与被解释输出一致。对数优势贡献不能逐项直接转换后相加成概率贡献。例8.3:贷款模拟数据的解释流程21生成模拟数据年龄、收入、信用分和贷款金额等特征。训练分类器划分训练与测试,拟合XGBoost模型。定义解释问题选择背景和输出,明确解释违约类别。绘图与核对局部看贡献,全局看分布与聚合。随机标签的解释边界教材Default标签独立随机生成。该例可用于学习接口和读图,模型归因可能反映有限样本中的偶然拟合,不能据此总结真实的违约规律。解释一个模型,并不等于证明这个模型已经学到稳定、可推广的业务关系。例8.3:统一SHAP对象与输出22importshapbackground=X_train.sample(100,random_state=42)explainer=shap.TreeExplainer(model,data=background,feature_perturbation='interventional',model_output='raw')sv=explainer(X_test)shap.plots.waterfall(sv[0])shap.plots.beeswarm(sv)shap.plots.bar(sv)解释前核对三项本例为XGBoost二分类。raw通常对应对数优势。确认sv的形状与目标输出。基线与贡献之和,应对应相同尺度的预测。沿用训练后的model与列顺序一致的DataFrame。多输出模型需先选择目标输出,再绘制单输出解释。瀑布图:单个预测的加法分解23基线−2.574加上各项贡献,得到输出−0.676。左侧为特征原值,条带标注为贡献值。图8-5SHAP力图蜂群图:多样本贡献分布24每点为一个样本,横轴为贡献,颜色为特征原值高低。观察高低取值的贡献分布。图8-6SHAP摘要图全局条形图:平均绝对贡献25大小与方向分开理解全局重要性为mean(|φⱼ|)。绝对值消除了正负方向。柱长表示平均贡献幅度。需另看分布图判断方向。本图来自明确的教学公式。mean(|φ|)只表示平均幅度。方向需结合分布图判断,低贡献也不能单独证明公平性。热图:样本与特征的归因矩阵26特征样本1样本2样本3样本4贷款额0.23-1.050.69-0.70信用分0.65-0.17-0.62-0.34年收入-0.380.05-0.110.30年龄0.07-0.030.090.06性别0.000.000.000.00归因矩阵的读法行对应输入特征。列对应样本。淡橙表示正贡献。淡蓝表示负贡献。数值显示幅度。性别项均为0。矩阵取自第19页教学公式的4个模拟样本。颜色表示贡献正负,表中数值保留两位小数。决策图:累积贡献的预测路径27每条线从共同基线逐步累加贡献,末端对应一个预测输出。横轴为输出值,纵向表示特征累积顺序。基线不必设为0。图8-11SHAP决策图SHAP的解释边界28背景与特征依赖背景变化可能改变基线和归因。相关特征可能共享或重新分配贡献。TreeSHAP利用树结构计算。其他解释器可主要依赖预测接口。算法应与模型及问题定义匹配。模型行为与现实原因正贡献表示推高当前解释输出。不表示增大该特征必然提高输出。读图时同时保留原值、贡献和单位。用重复计算或背景对照检查稳定性。模型归因本身不构成因果证据。教材贷款图采用随机模拟标签,适合练习图形读法。实际应用需独立验证模型和解释的可靠性。LIME的局部代理过程29选择样本固定一个样本,指定目标类别。生成扰动在选定邻域采样,调用原模型预测。按距离加权邻近样本权重较高,较远样本权重较低。拟合简单模型用加权代理近似,输出少量解释项。代理模型的监督信号局部代理拟合的是原模型的预测,而非重新拟合真实标签。解释只针对选定类别与邻域,代理系数反映局部近似中的关联。扰动规则、距离、核宽度和特征表示都会影响解释。稀疏线性代理是常见形式,但不是所有设置都相同。局部线性近似的数值示意30解释点t=1附近原模型为t²。邻域为0.4至1.6。权重随距离衰减。拟合直线约为1.031+2(t−1)。只近似所选局部范围。曲线由教学公式与加权最小二乘计算,展示LIME的局部代理思想,并非LIME软件包的运行输出。例8.4:鸢尾花的表格LIME31fromlime.lime_tabularimportLimeTabularExplainere=LimeTabularExplainer(X_train,feature_names=iris.feature_names,class_names=iris.target_names,mode='classification',random_state=42)x0=X_test[0].astype(float)k=int(rf.predict(x0[None])[0])exp=e.explain_instance(x0,rf.predict_proba,labels=(k,),num_features=4,num_samples=5000)print(exp.as_list(label=k))目标类别明确指定Iris有4个输入特征。预测接口返回3类概率。k为本次要解释的类别。列名和训练列顺序一致。区间由解释器的表示决定。沿用教材的Iris与随机森林。目标类别需按classes_核对,解释结果与指定类别对应。LIME解释的读法与稳定性32条件与权重一起读解释项可能是特征值区间。正权重支持所选类别的局部预测。负权重降低代理中的该类输出。权重针对当前样本与当前类别。不能当成全局固定的回归系数。近似质量需要核查比较代理输出与原模型输出。更换随机种子或邻域设置,查看重要特征和符号是否稳定。模型测试准确率高,不自动表示局部代理拟合良好。同一模型对不同类别的局部解释可以不同。图中的特征区间也不表示对真实结果的干预规则。例8.5:图像LIME的区域解释33fromlime.lime_imageimportLimeImageExplainere=LimeImageExplainer(random_state=0)result=e.explain_instance(image,model.predict,top_labels=1,hide_color=0,num_samples=1000)k=result.top_labels[0]temp,mask=result.get_image_and_mask(k,positive_only=True,num_features=5,hide_rest=False)超像素作为解释单元将区域隐藏或保留,观察目标类别概率变化。分割方式改变解释单元。遮挡颜色也影响扰动图像。接口需匹配三通道输入。沿用教材将MNIST灰度图复制为三通道并归一化的输入方式。只解释最高概率的1类,实际类别数仍为10。PDP:对其他特征取平均34PDⱼ(t)=(1/N)Σᵢf(t,x⁽ⁱ⁾₋ⱼ)1.选定网格值t把待分析特征统一替换成t。2.保留其他特征每个样本其余列仍保留自身取值。3.调用模型得到所有改写样本对应的预测。4.按样本平均每个t对应均值,连接成PDP曲线。PDP不是把其他特征固定在某一个平均样本。它对一批样本的其他特征取值做平均。图8-14部分依赖图PDP手算:平均值可能掩盖差异35替换后的t样本1:c=−1样本2:c=1PDP平均−22−20−11−1000001−1102−220两个样本的输出都随t变化,但方向相反。平均曲线为0,不能据此断言模型不使用特征t。ICE:逐样本曲线与平均曲线36个体响应与整体均值蓝线随t增大而下降。橙线随t增大而上升。绿色平均线保持为0。不同斜率揭示交互。这里交互项就是t×c。ICE固定每个样本其余特征,只改变目标特征。同一网格、同一批样本上的ICE均值对应PDP。例8.6与8.7:PDP和ICE的核心调用37fromsklearn.inspectionimportPartialDependenceDisplaynames=[f'Feature{j+1}'forjinrange(10)]PartialDependenceDisplay.from_estimator(model,X,features=[0],feature_names=names,kind='both',method='brute',grid_resolution=50,subsample=100,random_state=42)特征与网格设置model为教材训练的梯度提升回归模型。X包含10列特征。kind=both同时显示平均曲线和个体曲线。特征名需与列数一致。沿用make_regression的1000样本、10特征数据。图示用于解释该模型;评价泛化性能仍需独立数据。PDP和ICE的使用边界38相关特征与异常组合把收入改成t但保留所有其他列,可能形成数据中少见的组合。强相关特征下需检查样本支持。曲线稀疏区域不能过度解读。必要时缩小网格或分组比较。曲线差异的含义平行曲线的偏移可来自主效应。斜率或形态不同可提示交互。中心化ICE可突出相对变化。曲线解释的是模型响应,不是现实中改变变量的保证。PDP与ICE共享人为替换输入的限制。结合特征分布、相关性和业务约束一起读图。反事实:使模型预测改变的输入39一个明确的教学模型审批分数z=−2+0.5u−3d。u为收入,单位万元。d为负债比,设通过条件z≥0。原样本u=4、d=0.4。z=−1.2,当前未通过。仅允许提高收入保持负债比不变。−2+0.5u−3×0.4≥0。u≥6.4,即边界增量为2.4万元。这只是模型输入上的翻转条件。实际候选需重新计算并验证。本页为设定公式的教学模型,非实际信贷建议。反事实应保留不可变属性,并约束可操作特征、取值与修改成本。例8.8:约束搜索与预测复核40importnumpyasnpu=np.linspace(4,8,81)d=np.full_like(u,0.4)score=-2+0.5*u-3*dvalid=score>=0.01ifvalid.any():k=np.flatnonzero(valid)[0]candidate=(u[k],d[k])print(candidate,score[k])else:print('给定约束中未找到候选')范围与验证条件收入只在4至8万元内搜索。网格间隔为0.05万元。要求分数超过边界0.01。仅为该网格的最小收入。未找到也需要如实报告。一般模型用predict或predict_proba逐一复核候选,并明确目标类别。不能只修改最大系数对应的特征就宣称已经翻转。例8.9:对抗样本与FGSM41importtensorflowastfepsilon=0.1x=tf.convert_to_tensor(image,tf.float32)withtf.GradientTape()astape:tape.watch(x)p=model(x,training=False)loss=tf.keras.losses.categorical_crossentropy(y_true,p)g=tape.gradient(loss,x)ifgisNone:raiseValueError('输入梯度不可用')x_adv=tf.clip_by_value(x+epsilon*tf.sign(g),0.,1.)非定向扰动的定义真实标签采用one-hot。对输入求损失梯度。沿梯度符号增加损失。保持像素在0至1范围。误分类与否需重新验证。输入包含批量维,标签形状与类别概率匹配。FGSM使用梯度符号,并需要显式监视输入张量。原型、批评与代表性42原型:典型样本用少量真实样本描述常见模式。可按类中心或其他准则挑选。需明确特征空间和距离。离中心近不等于预测一定正确。多模态类别可能需要多个原型。批评:代表不足的样本寻找原型未能充分覆盖的对象。离中心远和模型不确定,是可用的课堂筛选启发。二者并不等价,应检查各自选中的实际样本。原型与批评关注样本代表性。有影响力实例则关注训练样本对拟合结果的影响,问题不同。有影响力的训练实例43选定检验对象固定模型、训练数据和关注的测试样本。改变训练样本删除或降低权重,控制其余训练设置。比较预测观察参数、预测或评价指标的变化。回到样本核查检查标注、异常值和训练代表性。删除后重训与近似方法删除后重新训练可直接比较,但计算代价较大。影响函数等方法用近似减少计算,其结论依赖模型和近似条件。对训练影响大的样本不一定离群,也不一定标签错误。需要结合实际数据检查。模型解释的核对顺序44核对项需要明确的内容解释对象哪个模型、哪个版本、哪个样本或子群输出定义目标类别、分数或概率、单位和基线方法设置背景、扰动、邻域、网格与特征依赖处理质量检查预测表现、解释保真度和重复稳定性解释边界数据支持、可操作约束与因果限制解释应帮助定位问题和提出可检验的假设。可视化本身不能替代模型验
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026及未来5年中国下置缸四柱式油压机市场现状数据分析及前景预测报告
- 2026及未来5年中国丁腈橡胶管栓市场现状数据分析及前景预测报告
- 2026及未来5年中国PVC证照皮市场现状数据分析及前景预测报告
- 2026及未来5年中国4通道加速度/动态信号调理卡市场现状数据分析及前景预测报告
- 2026年注册土木工程师(岩土)专业基础练习题测练习题及答案详解
- 2026年草原绘画模拟试卷(含答案)
- 2026年广东pcr上岗证模拟试卷(含答案)
- 2026年河南南阳会模拟试卷(含答案)
- 2026年汉职单招模拟试题(含答案)
- 2026年物业消防考试模拟题及答案详解
- 老年髋部骨折诊疗与管理指南2026年版
- 2026年重庆丰都县社区工作者招聘考试【结构化面试题库+高分答题模板】(含考官评分要点)
- 统编版九年级上册 道德与法治 第二单元《进入新时代》单元检测试卷(含答案)
- 2026江西九江长途汽车运输集团有限公司劳动合同制员工招聘4人考试模拟试题及答案解析
- 2026福汽集团审计稽核部招聘2人考试模拟试题及答案解析
- 四上2-8《呵护我们的器官》教学课件
- 新生儿PICC置管与维护技术
- CSCO肾癌诊疗指南2026
- 2025四川简阳农商行社会招聘笔试历年典型考题及考点剖析附带答案详解
- 2.2.1 中国的气候 课件(共37张)地理商务星球版(2024)八年级上册
- 变压器装配工岗中理论实操考核试卷含答案
评论
0/150
提交评论