在这里,将使用Python给出一个示例,但相同的思想可以推广到其他平台。...XGBoost的Python包支持使用特征名称而不是特征索引来指定约束条件。...第二个特征出现在两个不同的交互集中,[1, 2]和[2, 3, 4]。因此,与2允许互动的特征的并集是{1, 3, 4}。在以下图表中,根在特征2处分裂。...因为所有后代都应该能够与它互动,所以在第二层,所有4个特征都是合法的分裂候选项。乍一看,这可能看起来像是忽略了指定的约束集,但实际上并非如此。
{1,2,3,4}表示合法的分割特征集。...因为无论选择哪个特征进行根节点的分裂,所有后代都被允许将每个特征作为合法的分裂候选项,而不违反交互约束。
最后一个例子,使用[[0, 1], [1, 3, 4]],并选择特征0作为根节点的分裂。