简单来说就是分类的类别有多个,不再是二分,比如根据某些特征,什么温度、湿度、空气流动情况来预测天气,天气的label不能说是好天气和坏天气两种,而是分晴天、雨天、阴天,雪天等等,对于决策树或者从计算机的本质上来说,二分,0或者1是本质,计算机对于二分才是擅长的,那么接下来就有两种分类方法,一种是按照one vs rest

(晴天,(雨天、阴天、雪天)) ①

(雨天,(阴天、晴天、雪天)) ②

(阴天,(晴天、雨天、雪天)) ③

(雪天,(阴天、晴天、雨天)) ④

一种是按照one vs one

(晴天、雨天) ①

(晴天、阴天) ②

(晴天、雪天) ③

(雨天、阴天) ④

(雨天、雪天) ⑤

(阴天、雪天) ⑥

当我们得到测试数据套用one vs rest的model得到四种天气的概率,则四个概率中最大的就作为最终的预测结果,如

①:晴天=85%,非晴天=15%

②:雨天=75%,非雨天=25%

③:阴天=60%,非阴天=30%

④:雪天=5%,非雪天=95%

那么晴天的概率最大,预测为晴天;

one vs one 则是投票,出现次数最多的作为最终的预测结果,如:

①:晴天

②:阴天

③:雪天

④:阴天

⑤:雪天

⑥:阴天

因为阴天出现三次,次数是最多的,所以预测为阴天。

参考来自网络以下内容:

One-vs-Rest算法将一个给定的二分类算法有效地扩展到多分类问题应用中,也叫做“One-vs-All.”算法。OneVsRest是一个Estimator。它采用一个基础的Classifier然后对于k个类别分别创建二分类问题。类别i的二分类分类器用来预测类别为i还是不为i,即将i类和其他类别区分开来。最后,通过依次对k个二分类分类器进行评估,取置信最高的分类器的标签作为i类别的标签。

1)one vs rest。 
假如我有四类要划分(也就是4个Label),他们是A、B、C、D。于是我在抽取训练集的时候,分别抽取A所对应的向量作为正集,B,C,D所对应的向量作为负集;B所对应的向量作为正集,A,C,D所对应的向量作为负集;C所对应的向量作为正集,A,B,D所对应的向量作为负集;D所对应的向量作为正集,A,B,C所对应的向量作为负集,这四个训练集分别进行训练,然后的得到四个训练结果文件,在测试的时候,把对应的测试向量分别利用这四个训练结果文件进行测试,最后每个测试都有一个结果f1(x),f2(x),f3(x),f4(x).于是最终的结果便是这四个值中最大的一个。
2)pairwise。 
还是假设有四类A,B,C,D四类。在训练的时候我选择A,B; A,C; A,D; B,C; B,D;C,D所对应的向量作为训练集,然后得到六个训练结果,在测试的时候,把对应的向量分别对六个结果进行测试,然后采取投票形式,最后得到一组结果。

针对多类问题的分类中,具体讲有两种,即multiclass classification和multilabel classification。multiclass是指分类任务中包含不止一个类别时,每条数据仅仅对应其中一个类别,不会对应多个类别。multilabel是指分类任务中不止一个分类时,每条数据可能对应不止一个类别标签,例如一条新闻,可以被划分到多个板块。

无论是multiclass,还是multilabel,做分类时都有两种策略,一个是one-vs-​the-rest(one-vs-all),一个是one-vs-one。这个在之前的SVM介绍中(http://blog.sina.com.cn/s/blog_7103b28a0102w07f.html)也提到过。

在one-vs-all策略中,假设有n个类别,那么就会建立n个二项分类器,每个分类器针对其中一个类别和剩余类别进行分类。进行预测时,利用这n个二项分类器进行分类,得到数据属于当前类的概率,选择其中概率最大的一个类别作为最终的预测结果。

在one-vs-one策略中,同样假设有n个类别,则会针对两两类别建立二项分类器,得到k=n*(n-1)/2个分类器。对新数据进行分类时,依次使用这k个分类器进行分类,每次分类相当于一次投票,分类结果是哪个就相当于对哪个类投了一票。在使用全部k个分类器进行分类后,相当于进行了k次投票,选择得票最多的那个类作为最终分类结果​。

转载 : https://blog.csdn.net/lhui798/article/details/51035834、 https://blog.csdn.net/liulingyuan6/article/details/53436386、 http://blog.sina.com.cn/s/blog_7103b28a0102w42v.html

随机推荐

  1. 修改maven镜像为阿里云,速度快

    http://www.cnblogs.com/panxuejun/p/6140768.html修改maven根目录下的conf文件夹中的setting.xml文件,(或者当前用户目录 的 .m2 目录 ...

  2. Oracle分析函数-统计(sum、avg、max、min)

    很多需求中都涉及到统计:均值.累计.范围均值.相邻记录比较等.这些操作会统计多次,或有明确的统计范围,或返回的记录统计的数据集不同... 根据场景不同可分为如下几类: 1. 全统计 2. 滚动统计 3 ...

  3. MapReduce 计数器简介

    转自:http://my.oschina.net/leejun2005/blog/276891?utm_source=tuicool&utm_medium=referral 1.计数器 简介 ...

  4. C# 正则表达式判断是否是数字、是否含有中文、是否是数字字母组合

    //判断输入是否包含中文 不管你有没有输入英文,只要包含中文,就返回 true public static bool HasChinese(string content) { //判断是不是中文 st ...

  5. R包的小技巧

    通常我们都是直接使用library(pkg_name)  的形式加载R包,在同一台机器上面,对于我们而言,这个包所在的路径一定是在.libPaths() 路面的,但是对于其他用户而言,这个路径可能不存 ...

  6. A new session could not be created. (Original error: Requested a new session but one was in progress) (WARNING: The server did not provide any stacktrace information)

    出现这个问题,是因为关毕了appium,或者是关毕了appium再次打开,那么session就不是一样的了所以报错. 一般是因为测试的时候报错了,appium自动关毕了,再次打出现的报错 解决方法:重 ...

  7. 121、Data Binding(数据绑定)(转载)

    http://www.jianshu.com/p/b1df61a4df77 http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/060 ...

  8. odoo11社区版python依赖库相对odoo10的变化

  9. Kafka集群管理工具kafka-manager的安装使用

    一.kafka-manager简介 kafka-manager是目前最受欢迎的kafka集群管理工具,最早由雅虎开源,用户可以在Web界面执行一些简单的集群管理操作.具体支持以下内容: 管理多个集群 ...

  10. ToolBar样式颜色,图标设置

    extends:http://blog.csdn.net/w1054993544/article/details/48339565 <resources> <style name=& ...