决策树分类器,多标签输出



决策树支持多标签分类,对吗?我的CCD_ 1标签是CCD_。现在y标签可以是sklearn文档中提到的list of list of labels类型,那么为什么它会给我未知标签类型的错误呢?

这个错误是以列表长度应该一致的方式解决的,但除了对它进行一次热编码之外,我还应该如何处理这个问题?

您需要首先将标签转换为标签指示符格式。然后您可以将它们与决策树一起使用。

对于转换,可以使用MultiLabelBinarizer。

from sklearn.preprocessing import MultiLabelBinarizer
mlb = MultiLabelBinarizer()
y_converted = mlb.fit_transform([['brufen','amoxil'], ['brufen'], ['xanex']])
# Output: array([[1, 1, 0],
#                [0, 1, 0],
#                [0, 0, 1]])
mlb.classes_
# OutPut: array(['amoxil', 'brufen', 'xanex'], dtype=object)

现在在决策树中使用这个y_converted而不是原来的y

基于此处的信息:https://scikit-learn.org/stable/modules/multiclass.html#multioutputclassifier

您可以将sklearn.multioutput.MultiOutputClassifier与决策树一起使用来获得多标签行为。如果我理解正确的话,它的工作原理是在内部为每个标签创建一个单独的树。

最新更新