在 XGBoost 中使用 L1 惩罚

数据挖掘 xgboost 正则化
2022-02-22 14:40:13

我正在尝试使用 L1 正则化来选择 XGBoost 分类器中的特征。但是,我没有看到任何关于如何指定 l1 的惩罚的示例代码。

这就是我在 sklearn 的 LogisticRegression 中的做法。

C = [10, 1, .1, .001]

for c in C:
    clf = LogisticRegression(penalty='l1', C=c)
    clf.fit(X_train, y_train)
    print('C:', c)
    print('Training accuracy:', clf.score(X_train, y_train))

我应该如何在 XGBoost 中指定惩罚和 C?

1个回答

L2 和 L1 正则化分别通过lambda (=reg_lambda)alpha (=reg_alpha)参数控制。更高的值alpha意味着更多的 L1 正则化。请参阅此处的文档