XGBRegressor 和 XGBClassifier 的区别

数据挖掘 xgboost
2021-10-02 23:12:25

我试图了解 xgboost.XGBRegressor 和 xgboost.sklearn.XGBClassifier 之间的区别。

有人可以简明扼要地解释其中的区别吗?

因为当我用完全相同的数据拟合两个分类器时,我会得到完全不同的性能。

这就是我拟合数据的方式。

clf = xgboost.XGBRegressor(alpha=c)
#clf = xgboost.sklearn.XGBClassifier(alpha=c)

clf.fit(X_train, y_train)
y_pred = clf.predict(X_test)
print('Model roc auc score: %0.3f' % roc_auc_score(y_test, y_pred, average='macro', sample_weight=None))
print('Model pr auc score: %0.3f' % average_precision_score(y_test, y_pred))

当 clf = xgboost.sklearn.XGBClassifier(alpha=c)

模型 roc auc 得分:0.544

模型 pr auc 得分:0.303

当 clf = xgboost.XGBRegressor(alpha=c)

模型 roc auc 得分:0.703

模型 pr auc 得分:0.453

什么会导致这种性能差异?

1个回答

XGBRegressor 用于连续的目标/结果变量。这些通常被称为“回归问题”。

XGBClassifier 用于分类目标/结果变量。这些通常被称为“分类问题”。