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))
实现结果如下所示: