如何防止特征在 python XGBClassifier 模型中相互影响

How to prevent features to interact with each other in python XGBClassifier model

我训练过这个模型:

model = XGBClassifier( #XGBClassifier
    objective='binary:logistic',
    base_score=0.5, 
    booster='gbtree', 
    colsample_bylevel=1,
    colsample_bynode=1, 
    colsample_bytree=1,
    enable_categorical=False, 
    gamma=2, 
    gpu_id=-1,
    importance_type=None, 
    interaction_constraints='',
    learning_rate=0.1, 
    max_delta_step=0,
    max_depth=3,
    min_child_weight=7, 
    monotone_constraints='(1,1,1,1,1)',
    n_jobs=1, 
    nthread=1, 
    num_parallel_tree=1,
    predictor='auto',
    random_state=0, 
    reg_alpha=0, 
    reg_lambda=1,
    scale_pos_weight=1, 
    silent=True, 
    subsample=0.8,
    tree_method='exact',
    validate_parameters=1, 
    pred_contribs=True,  
    verbose=True)
    
    
model.fit(X, Y)

X 数据框有 5 个预测特征。 有没有办法通过编辑 XGBClassifier 代码中的参数来防止这 5 个特征相互影响?

如果您更改 interaction_constraints=[] 它将强制这些功能无法交互。

如果您想验证情况是否如此,您可以通过执行类似

的操作来询问各个树的输出
trees = model.get_booster().get_dump()

然后检查树 [0]、树 [1] 等,您会发现每棵树只能存在一个特征。