部分依赖图(以下简称PDP)显示了目标响应[1]和一组“目标”特征之间的依赖关系,并边缘化所有其他特征(特征补集,是目标特征集关于全部特征集合的补集)的值。直观地,我们可以将部分依赖关系解释为预期目标响应作为“目标”特征的函数。
由于人类感知的限制,目标特征集的大小必须很小(通常是一个或两个),因此目标特征通常需要从最重要的特征中选择。
下图展示了使用GradientBoostingRegressor实现的,加利福尼亚州住房数据集的四个单向和一个双向PDP:
单向PDP告诉我们目标响应和目标特征(如线性、非线性)之间的相互作用。上图左上方的图表显示了一个地区的收入中位数对房价中位数的影响;我们可以清楚地看到它们之间的线性关系。注意,PDP假设目标特征独立于补体特征,而这一假设在实践中经常被推翻。
具有两个目标特征的PDP显示了这两个特征之间的相互作用。例如,上图中的双变量PDP显示了房价中值与房屋年龄和每户平均居住者的联合值之间的关系。我们可以清楚地看到这两个特征之间的相互作用:对于平均入住率大于2的情况,房价几乎与房屋的年龄无关,而对于数值小于2的情况,则与年龄有很强的依赖关系。
数plot_partial_dependency来创建单向和双向PDP。在下面的示例中,我们展示了如何创建一个局部依赖图的网格:两个用于特征0和1的单向PDP,以及两个特征之间的双向PDP:
from sklearn.datasets import make_hastie_10_2
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.inspection import plot_partial_dependence