sklearn.multiclass.OneVsRestClassifier :处理多分类问题

本文介绍了如何利用sklearn库中的OneVsRestClassifier处理多分类和多标签问题。该策略通过将多分类问题转化为一系列的二分类任务,每个分类器针对一个特定类别与其他所有类别对立。内容涵盖了数据格式要求,如3x3的二维数组表示3个样本及3个类别的多标签数据,并举例说明了数据预处理成支持的多标签形式,如集合或元组。文章还讨论了一种常见的实现方式——one-vs-all策略,解释了其工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.12. Multiclass and multilabel algorithms

- sklearn.multiclass 模块通过将多分类问题化为二分类问题来处理 multiclassmultilabel 分类问题。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, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值