1.12. Multiclass and multilabel algorithms
- sklearn.multiclass
模块通过将多分类问题化为二分类问题来处理 multiclass
和 multilabel
分类问题。Multitarget regression
也支持。
Multilabel classification format
- 数据形式为(n_samples, n_classes)
例如:
np.array([[1, 0, 0], [0, 1, 1], [0, 0, 0]])
- 3x3的二维数组代表3个样本,3个类别标签,其中,标签0在第一个样本中,标签1和2在第二个样本中,第三个样本无标签。
- sklearn.preprocessing.MultiLabelBinarizer(classes=None, sparse_output=False)
预处理数据为支持的多标签形式。
- 例子:
- a list of sets or tuples is a very intuitive format for multilabel data,即可以集合或者元组形式。
from sklearn.preprocessing import MultiLabelBinarizer
mlb = MultiLabelBinarizer()
mlb.fit_transform([(1, 2), (3,)])
array([[1, 1, 0],
[0, 0, 1]])
mlb.classes_
array([1, 2, 3])
例子2:
mlb.fit_transform([set(['sci-fi', 'thriller']), set(['comedy'])])
array([[0, 1, 1],
[1, 0, 0]])
list(mlb.classes_)
['comedy', 'sci-fi', 'thriller']
例子3:
from sklearn.preprocessing import MultiLabelBinarizer
y = [[2, 3, 4], [2], [0, 1, 3], [0, 1, 2, 3, 4], [0, 1, 2]]
MultiLabelBinarizer().fit_transform(y)
array([[0, 0, 1, 1, 1],
[0, 0, 1, 0, 0],
[1, 1, 0, 1, 0],
[1, 1, 1,