gpt4 book ai didi

python - XGBoost 用于多标签分类?

转载 作者:太空狗 更新时间:2023-10-29 17:33:06 48 4
gpt4 key购买 nike

是否可以使用 XGBoost 进行多标签分类?现在我使用 OneVsRestClassifier 而不是 sklearnGradientBoostingClassifier。它可以工作,但只使用我 CPU 的一个内核。在我的数据中,我有大约 45 个特征,任务是用二进制( bool )数据预测大约 20 列。指标是平均精度 (map@7)。如果您有一个简短的代码示例要分享,那就太好了。

最佳答案

一种可能的方法是使用 sklearn.multioutput 模块中的 MultiOutputClassifier,而不是使用用于多类任务的 OneVsRestClassifier .

下面是一个小的可重现示例代码,其中包含 OP 要求的输入特征和目标输出的数量

import xgboost as xgb
from sklearn.datasets import make_multilabel_classification
from sklearn.model_selection import train_test_split
from sklearn.multioutput import MultiOutputClassifier
from sklearn.metrics import accuracy_score

# create sample dataset
X, y = make_multilabel_classification(n_samples=3000, n_features=45, n_classes=20, n_labels=1,
allow_unlabeled=False, random_state=42)

# split dataset into training and test set
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=123)

# create XGBoost instance with default hyper-parameters
xgb_estimator = xgb.XGBClassifier(objective='binary:logistic')

# create MultiOutputClassifier instance with XGBoost model inside
multilabel_model = MultiOutputClassifier(xgb_estimator)

# fit the model
multilabel_model.fit(X_train, y_train)

# evaluate on test data
print('Accuracy on test data: {:.1f}%'.format(accuracy_score(y_test, multilabel_model.predict(X_test))*100))

关于python - XGBoost 用于多标签分类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40916939/

48 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com