Xg boost用于多标记分类?

是否可以使用xgboost进行多标签分类? 现在我使用Sklearn的GradientBoostingClassifier上的OneVsRestClassifier。 它的工作原理,但只使用我的CPU中的一个核心。 在我的数据中,我有45个特征,其任务是用二进制(布尔)数据预测大约20列。 公制是平均精度(地图@ 7)。 如果你有一个简短的代码示例,它将成为...


有几种方法可以做到这一点,其中之一就是您已经提出的方法:

1。

from xgboost import XGBClassifier
from sklearn.multiclass import OneVsRestClassifier
# If you want to avoid the OneVsRestClassifier magic switch
# from sklearn.multioutput import MultiOutputClassifier

clf_multilabel = OneVsRestClassifier(XGBClassifier(**params))

clf_multilabel将适合每一个类二元分类,它将使用在指定然而,许多核心params (仅供参考,你还可以指定n_jobsOneVsRestClassifier ,但吃了更多的内存)。

2.如果您首先通过为k个具有k正确标签的每个数据点制作k副本来首先处理数据,那么您可以通过更简单的多类问题来解决问题。 那时,就是

clf = XGBClassifier(**params)
clf.fit(train_data)
pred_proba = clf.predict_proba(test_data)

获得每个班级的分类边界/概率,并确定您想要预测标签的阈值。 请注意,该解决方案并不精确:如果某个产品具有标签(1, 2, 3) ,则会为每个类别人为地引入两个否定样本。

链接地址: http://www.djcxy.com/p/94195.html

上一篇: Xg boost for multilabel classification?

下一篇: ptr: linked list entry deletion