class classpython 中的多重化
Mutli-class classification in python
我正在将二元分类问题转换为多标签分类程序。代码写在python.
下面是已有的代码:
positive_labels = [[0, 1] for _ in positive_examples]
negative_labels = [[1, 0] for _ in negative_examples]
现在我想将其转换为多标签,例如 3 类 - 0,1,2
positive_labels = [[1,0,0] for _ in positive_examples]
neutral_labels = [[0,1,0] for _ in neutral_examples]
negative_labels = [[0,0,1] for _ in negative_examples]
这是正确的吗?如果不能,请告诉我该怎么做?
请帮忙。
为此,您可以在 scikit-learn 中使用 MultiLabelBinarizer
from sklearn.preprocessing import MultiLabelBinarizer
mlb = MultiLabelBinarizer()
# to fit transform you pass the rows of labels
mlb.fit_transform([(0,), (1,),(1,2)])
您会得到如下所示的输出
array([[1, 0, 0],
[0, 1, 0],
[0, 1, 1]])
fit_transform 方法实现了 TransformerMixin (http://scikit-learn.org/stable/modules/generated/sklearn.base.TransformerMixin.html)。它适合学习然后转换它。一旦你调用了fit_transform,就不需要再次调用fit,你只需要像下面这样调用transform
mlb.transform([(1,2),(0,1)])
array([[0, 1, 1],
[1, 1, 0]])
我正在将二元分类问题转换为多标签分类程序。代码写在python.
下面是已有的代码:
positive_labels = [[0, 1] for _ in positive_examples]
negative_labels = [[1, 0] for _ in negative_examples]
现在我想将其转换为多标签,例如 3 类 - 0,1,2
positive_labels = [[1,0,0] for _ in positive_examples]
neutral_labels = [[0,1,0] for _ in neutral_examples]
negative_labels = [[0,0,1] for _ in negative_examples]
这是正确的吗?如果不能,请告诉我该怎么做?
请帮忙。
为此,您可以在 scikit-learn 中使用 MultiLabelBinarizer
from sklearn.preprocessing import MultiLabelBinarizer
mlb = MultiLabelBinarizer()
# to fit transform you pass the rows of labels
mlb.fit_transform([(0,), (1,),(1,2)])
您会得到如下所示的输出
array([[1, 0, 0],
[0, 1, 0],
[0, 1, 1]])
fit_transform 方法实现了 TransformerMixin (http://scikit-learn.org/stable/modules/generated/sklearn.base.TransformerMixin.html)。它适合学习然后转换它。一旦你调用了fit_transform,就不需要再次调用fit,你只需要像下面这样调用transform
mlb.transform([(1,2),(0,1)])
array([[0, 1, 1],
[1, 1, 0]])