文章目录

  • 1、什么是OneVsRestClassifier
  • 2、为什么要使用OneVsRestClassfier
  • 3、OvR实现
  • 4、附件
  • 5 、参考文献

1、什么是OneVsRestClassifier

OvR为每一个类别配备一个分类器,是目前最常用的一种多类分类策略

classsklearn.multiclass.OneVsRestClassifier(estimator,∗,n_jobs=None)class sklearn.multiclass.OneVsRestClassifier(estimator, *, n\_jobs=None) classsklearn.multiclass.OneVsRestClassifier(estimator,∗,n_jobs=None)

estimator:要使用的分类模型
n_jobs:与K折交叉验证相同,n_jobs等于-1时,使用所有处理器工作

2、为什么要使用OneVsRestClassfier

使用OvR可以更好的获取每一个类别的相关信息,比如在建模时遇到需要分品牌,分类别对产品进行处理预测,OvR就是可以是一个思路。
具体sklearn的中文文档给出了如下的介绍:

3、OvR实现


import numpy as np
from sklearn import svm,datasets
from sklearn.metrics import roc_curve,auc
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import label_binarize
from sklearn.multiclass import OneVsRestClassifier
from sklearn.svm import SVC
import matplotlib.pyplot as plt#加载鸢尾数据集
iris = datasets.load_iris()
X = iris.data
y = iris.target#将数据二进制化处理,此处和onehotencoder大概一致
y = label_binarize(y,classes=[0,1,2])
n_classes = y.shape[1]#加入噪点
n_sample,n_featrues = X.shape
X = np.c_[X,np.random.RandomState(0).randn(n_sample,80*n_featrues)]#分割数据
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=.5,random_state=0)#设置分类器,这里实用的是SVC支持向量机
clf =SVC(C=0.2,gamma=0.2,kernel='linear', probability=True, random_state=0)
classifier = OneVsRestClassifier(clf,n_jobs=-1)
classifier.fit(X_train, y_train)
#计算分数,roc_curve要用到
y_score = classifier.decision_function(X_test)fpr = dict()
tpr = dict()
roc_auc = dict()
#计算aoc值
for i in range(n_classes):fpr[i],tpr[i],_=roc_curve(y_test[:,i],y_score[:,i])roc_auc[i] = auc(fpr[i],tpr[i])#画图
plt.figure()
lw = 2
color = ['r', 'g', 'b']
for i in range(3):plt.plot(fpr[i], tpr[i], color=color[i],lw=lw, label='ROC curve (area = %0.2f)' % roc_auc[i])
plt.plot([0, 1], [0, 1], color='navy', lw=lw, linestyle='--')plt.xlim([0.0, 1.0])
plt.ylim([0.0, 1.05])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Receiver operating characteristic example')
plt.legend(loc="lower right")
plt.show()

4、附件

三个类别的roc曲线

5 、参考文献

https://scikit-learn.org.cn/view/679.html
https://www.cnblogs.com/yanshw/p/12691329.html

(9)机器学习_多分类器OneVsRestClassifier相关推荐

  1. 图像分类数据库_图像分类器-使用僧侣库对房屋房间类型进行分类

    图像分类数据库 This article is a tutorial on how to use the Monk library to classify house room types like ...

  2. 分类决策树 回归决策树_决策树分类器背后的数学

    分类决策树 回归决策树 决策树分类器背后的数学 (Maths behind Decision Tree Classifier) Before we see the python implementat ...

  3. 端到端机器学习_端到端机器学习项目:评论分类

    端到端机器学习 In this article, we will go through a classification problem that involves classifying a rev ...

  4. Ex6_机器学习_吴恩达课程作业(Python):SVM支持向量机(Support Vector Machines)

    Ex6_机器学习_吴恩达课程作业(Python):SVM支持向量机(Support Vector Machines) 文章目录 Ex6_机器学习_吴恩达课程作业(Python):SVM支持向量机(Su ...

  5. python 读grid 数据_科学网—Python_机器学习_总结14:Grid search - 李军的博文

    机器学习中存在两类参数:通过训练数据学习得到的参数:---可认为是辨识得到的参数,例如模型系数: 在学习算法中单独需要优化的参数--超参.调优参数:---算法自身的系数,例如决策树的深度参数: Gri ...

  6. pytorch机器学习_机器学习— PyTorch

    pytorch机器学习 PyTorch : It is an open source machine learning library based on the Torch library (whic ...

  7. python sklearn 梯度下降法_科学网—Python_机器学习_总结4:随机梯度下降算法 - 李军的博文...

    =============================================================== 总结如下: 1.随机梯度下降算法可以看成是梯度下降算法的近似,但通常它能 ...

  8. Python_机器学习_常用科学计算库_第6章_ Seaborn+综合案例

    Python_机器学习_常用科学计算库_第6章_ Seaborn+综合案例 文章目录 Python_机器学习_常用科学计算库_第6章_ Seaborn+综合案例 Seaborn 学习目标 6.1 Se ...

  9. 李宏毅_机器学习_作业1(详解)_COVID-19 Cases Prediction (Regression)

    李宏毅_机器学习_作业1:COVID-19 Cases Prediction (Regression) 本文旨在,读懂hw1代码.李宏毅老师作业的完成有一个默认前提,掌握python基础语法,pyto ...

  10. Python_机器学习_算法_第4章_4.决策树算法

    Python_机器学习_算法_第4章_4.决策树算法 文章目录 Python_机器学习_算法_第4章_4.决策树算法 决策树算法 学习目标 4.1 决策树算法简介 学习目标 小结 4.2 决策树分类原 ...

最新文章

  1. 美国纽约的一个摄像头!刷新即现奇迹!
  2. Django框架(展示图书信息简易版)
  3. php遍历原理,PHP数组遍历与实现原理
  4. linux磁盘fio压力测试,fio命令 – 对磁盘进行压力测试和验证
  5. idea行号颜色修改
  6. php基础语法了解,PHP基础语法
  7. qt调用import sys库_【开源库】使用Qt.py进行开发
  8. c++初学,计算立方体的体积和面积,并比较两个立方体是否相同:
  9. php1108脱机使用,电脑打印机脱机怎么重新连接
  10. 安装linux出现分区出错,找到了linux分区顺序错乱修复方法
  11. xshell6和xftp6的安装
  12. 基于ENVI进行遥感影像裁剪
  13. 思科路由器的介绍及实战
  14. xman 2018夏solo题
  15. SpringCloud之服务提供者和服务消费者
  16. E2224和E5-2630v4的区别?
  17. AAAI 2019 论文解读:卷积神经网络继续进步
  18. Eaglooe 学习日记1
  19. grub effect
  20. 【通信原理】信道编码——线性分组码

热门文章

  1. 蠕虫Sexy View短信攻击诺基亚3250等手机
  2. 【Webcam设计】视频的采集和动态显示
  3. Stanford CoreNLP服务器
  4. spark读取kafka数据 createStream和createDirectStream的区别
  5. 在Launcher3的小部件中隐藏Widgets或Shortcuts
  6. 解决 https 证书验证不通过的问题
  7. 多个Tomcat同时运行环境配置 - imsoft.cnblogs
  8. const int * pi/int * const pi的区别
  9. Android 助力云计算
  10. 硬盘分区变为RAW文件系统后的解决办法