首先我们来看一下什么是OVR分类.我们知道sigmoid函数可以用来进行二分类,那么多分类怎么实现呢?其中一个方法就是使用OVR进行把多分类转换成二分类进行计算.
OVR,全称One-vs-Rest,是一种将多分类问题转化为多个二分类子问题的策略。在这种策略中,多分类问题被分解为若干个二分类问题。例如,如果有K个类别需要分类,则会有K个二分类器,每个分类器只负责判断某一个类别与其他所有类别的区别。这种方法常用于逻辑回归等算法解决多分类问题。
OvR是一种二分类策略,即一对剩余(One Vs Rest)。当要对n种类别的样本进行分类时,分别取一种样本作为一类,将剩余的所有类型的样本看做另一类,这样就形成了n个二分类问题。在训练阶段,需要将数据集划分为n个二分类数据集,分别训练二分类分类器。在测试阶段,对测试样本进行n个二分类任务,每个任务对应一个分类器,计算对应类别的概率值,最后选择概率值最大的类别作为最终测试样本的类别。
我们看一下如何用代码实现
import numpy as np 导入数学计算包
from sklearn.linear_model import LogisticRegression 导入逻辑回归
from sklearn import datasets 导入数据集
from sklearn. model selection import train_test_split # 拆分数据,随机打乱顺序 用来拆分,和打乱数据顺序
X,y=datasets.load_iris(return_X_y&#