随着各领域数据集的日益丰富和复杂,像复杂树、随机森林、提升树、最近邻、支持向量机等黑箱监督学习模型相较于更透明、更易于解释的线性和逻辑回归模型,在捕捉非线性现象方面变得越来越重要。即使目的纯粹是预测,理解预测变量的效果仍然可能非常重要。如果预测变量的效果违反直觉(例如,如果从监督学习模型中得出的结论是心脏病发作的风险随着患者年龄的增长而降低),那么这要么是模型拟合不可靠的标志,要么是发现了一个新的令人惊讶的现象。此外,在许多监管环境中,预测模型必须透明,例如向监管机构证明消费者信用风险模型不会基于年龄、种族等对信用申请者进行惩罚。
在拟合黑箱监督学习模型时,可视化单个预测变量的主要效应及其低阶交互效应通常很重要,部分依赖(PD)图是实现这一点最受欢迎的方法。然而,它们存在一个严格的假设:特征必须是不相关的。在现实世界中,特征通常是相关的,无论是因为一些特征直接从其他特征计算得出,还是因为观察到的现象产生了相关的分布。
因此,需要一种不受特征间相关性影响的无偏技术。累积局部效应(ALE)可以处理相关预测变量。
在本文中,将通过房价预测示例来解释。构建部分依赖图的步骤如下:选择特征、定义网格、对于每个网格值:替换特征为网格值、平均预测、绘制曲线。例如,如果想要找到sqft_living变量与房间数量的比较特征效应,对于PDP的第一个网格值的计算——比如说40平方米——用40平方米替换所有实例的sqft_living面积,即使是有多达8个房间的房子。部分依赖图包括这些不切实际的房子在特征效应估计中,并假装一切都好。
对于在0.75处计算x1的特征效应,PDP用0.75替换所有实例的x1,错误地假设x2在x1=0.75处的分布与x2的边际分布相同(垂直线)。这导致x1和x2的不太可能的组合(例如,在x1=0.75处x2=0.2),PDP用于计算平均效应。
为了找到相关特征的特征效应,可以对特征的条件分布进行平均,即在x1的网格值处,平均具有相似x1值的实例的预测。使用条件分布计算特征效应的解决方案称为边际图或M图。但这里也有问题。如果平均所有大约40平方米的房子的预测,估计sqft_living和房间数量的联合效应,由于相关性。即使sqft_living对房子的价格没有影响,M图仍然会显示sqft_living的增加会增加房子的价格。下图显示了两个相关特征如何使用M图工作。
M图避免了平均不太可能的数据实例的预测,但它们将一个特征的效应与所有相关特征的效应混合在一起。ALE图通过计算预测的差异而不是平均值来解决这个问题。对于40平方米的sqft_living变量,ALE技术使用所有大约40平方米的房子,得到模型预测,假设这些房子是41平方米减去预测,假设它们是39平方米。这给了sqft_living变量的纯特征效应,而不考虑相关特征的效应。下图提供了如何计算ALE图的直观理解。
让看看如何为预测金县房价的回归问题实现ALE。数据集包括2014年5月至2015年5月之间出售的房屋。数据集有21个特征和21613个观测值。数据集已分为训练、验证和测试,测试数据有2217个观测值,而训练和验证数据分别有9761和9635个观测值。在训练数据上训练模型。在验证数据上评估几个模型。最终模型然后用于预测测试数据的目标变量(价格)。
需要执行数据清理和探索性数据分析,以进入模型构建阶段。可以在这里找到代码:
在清理数据和执行EDA之后,得到了以下变量:预测变量——卧室、浴室、对数转换的sqft_living、对数转换的sqft_lot、等级、对数转换的sqft_above和yr_built。目标——对数转换的房价。将执行多元线性回归和随机森林模型以理解技术。使用了‘alibi’库。
接下来,对回归和随机森林模型使用了ALE技术。
让考虑sqft_living变量的ALE图来解释结果。图上的ALE在y轴上是以预测变量的单位,即对数转换的房价美元。ALE值对于sqft-living=8.5的点大约是0.4,这意味着对于平均对数转换的sqft_living大约是8.5的社区,模型预测由于特征sqft_living相对于平均预测,房价的对数转换增加了0.4单位。
另一方面,对于平均对数转换的sqft_living低于约7.5的社区,特征对预测的影响变为负数,即对数转换的美元价格下降。线性回归模型的ALE图本身就是线性的——特征效应毕竟是线性的。事实上,ALE线的斜率正是线性回归的系数。
因此,线性回归的ALE图的斜率与学习模型的系数具有完全相同的解释——全局特征效应。可以比较两个模型的ALE结果。在上面的图中,可以看到线性回归特征效应的sqft_living是正相关的,而随机森林特征效应的sqft_living不是单调的。