sklearn中实现多分类任务(OVR和OVO)

sklearn中实现多分类任务(OVR和OVO)

1、OVR和OVO是针对一些二分类算法(比如典型的逻辑回归算法)来实现多分类任务的两种最为常用的方式,sklearn中专门有其调用的函数,其调用过程如下所示:

#sklearn中对于所有的二分类算法提供了统一的OVR和OVO的分类器函数,可以方便调用实现所有二分类算法的多分类实现
from sklearn.multiclass import OneVsOneClassifier(OVR)
from sklearn.multiclass import OneVsRestClassifier(OVO)
from sklearn import datasets
d=datasets.load_digits()
x=d.data
y=d.target
from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test=train_test_split(x,y,random_state=666)
log_reg=LogisticRegression() #1-1定义一种二分类算法
log_reg1=LogisticRegression(multi_class="multinomial",solver="newton-cg")
ovr=OneVsRestClassifier(log_reg) #1-2进行多分类转换
ovo=OneVsOneClassifier(log_reg1)
ovr.fit(x_train,y_train) #1-3进行数据训练与预测
print(ovr.score(x_test,y_test))
ovo.fit(x_train,y_train)
print(ovo.score(x_test,y_test))

实现结果如下所示:

sklearn中实现多分类任务(OVR和OVO)_第1张图片

你可能感兴趣的:(sklearn中实现多分类任务(OVR和OVO))