多分类学习问题的解决方法
2018-01-07 21:08
176 查看
基本思路
利用二分类学习器解决多分类问题。考虑N个类别C1,C2,...,CN,多分类学习的基本思路是“拆解法”,即将多分类问题拆分,然后为拆出的每个二分类任务训练一个分类器;在测试的时候,对每个分类器的预测结果进行集成,然后获得多分类结果。具体方法
拆分策略:“一对一”(OvO),“一对其余”(OvR),“多对多”(MvM)对给定的数据集D=(x1,y1),(x2,y2),...,(xm,ym),yi∈C1,C2,...,CN.
OvO:将这N个类别两两配对,从而产生N(N−1)/2个二分类任务,例如OvO将为区分类别Ci和Cj训练一个分类器,把Ci类样例作为正例,Cj类样例作为反例。在测试阶段,将N(N−1)/2个二分类结果通过投票产生最终结果:将预测最多的类别作为最终分类结果。
OvR:将一个类作为正例、剩下的作为负例来训练N个分类器。若有一个分类器被分为正例,则被标记正例的类即为最终分类结果,若有多个,则求取每个类别的置信度,选取置信度最大的类别作为最终结果。
MvM:将若干个类作为正类,剩下的若干类为反类,通过“纠错输出码(ECOC)”来选取正反类。
process:
1.编码:对N个类别做M次划分,每次划分将一部分类别划分为正类,一部分划分为反类,从而形成一个二分类训练集;这样一共产生M个训练集,可训练出M个分类器。
2.解码:对M个分类器分别对测试样本进行预测,这些预测标记组成一个编码。将这个预测编码与每个类别的各自编码进行比较,返回其中最小的类别作为最终预测结果。
如下例:
对于向量X=(x1,x2,x3,x4...,xn);Y=(y1,y2,y3,y4...,yn)
欧氏距离:
D1=(y1−x1)2+(y2−x2)2+(y3−x3)2+...+(yn−xn)2−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−√
海明距离:D2=∑ni=1II(xi≠yi)
相关文章推荐
- android 学习中遇到的若干问题和解决方法(1)
- [学习]“sql2005管道的另一端上无任何进程”及附带一系列问题完整解决方法
- 【iReport学习一】iReport 3.7版本中,PDF中文显示问题解决方法
- 要学习的最主要的解决问题方法之一
- python django学习-问题记录及解决方法
- 学习NHibernate时遇到的问题解决方法
- linux学习笔记--常见问题解决方法
- C++学习:Calc的赋值问题解决了,解决方法:先刷新控件值至相应变量
- Idhttp 学习中遇到的问题 与 解决方法
- 我的嵌入式学习笔记(2)--scanf使用常见问题及解决方法
- PHP学习之路之PHP文件上传需要考虑的问题以及解决方法($_FILES,$_SERVER,substr,strrpos,file_exists,move_uploaded_file,is_uploaded_file,mkdir)
- 最近学习J2EE遇到的问题及解决方法(一)
- 黑马程序员_学习笔记5多线程在的应用遇到的主要问题及解决方法。
- ESXi(ESXi 4.1)相关问题解决方法和操作学习笔记
- 学习Hibernate碰到的问题以及解决问题的方法(长期更新)
- android 学习中遇到的问题及解决方法
- struts学习笔记--解决了struts action中的execute方法不执行的问题
- WPF学习笔记 - ”指定的元素已经是另一个元素的逻辑子元素。请先将其断开连接。“问题的解决方法之一
- 【转】[学习]“sql2005管道的另一端上无任何进程”及附带一系列问题完整解决方法
- 学习css中遇到一个问题及解决方法