多分类问题:有N个类别C1,C2,...,Cn,多分类学习的基本思路是“拆解法”,即将多分类任务拆分为若干个而分类任务求解,最经典的拆分策略是:“一对一”,“一对多”,“多对多”

(1)一对一

给定数据集D={(x1,y1),(x2,y2),...,(xn,yn)},yi€{c1,c2,...,cN},一对一将这N个类别两两配对,从而产生N(N-1)/2个二分类任务,在测试阶段新样本将同时提交给所有的分类器,于是将得到N(n-1)/2个分类结果,最终把预测最多的结果作为投票结果。

算法:

(2)一对多

一对多则是将每一个样例作为正例,其他剩余的样例作为反例来训练N个分类器,如果在测试时仅有一个分类器产生了正例,则最终的结果为该分类器,如果产生了多个正例,则判断分类器的置信度,选择置信度大的分类别标记作为最终分类结果。

算法:

举例描述:

一对一问题:如果有4个类,首先从中任选两个类,进行标记,判断某一个样例更倾向于哪一个类,记录预测的结果,对所有的样例进行判断,看他应该属于两个类中的哪一个,然后选择其他的两个类,重复这个过程,最后收集某一个样例的全部判断结果,会得到不同的结果,找到其中的所占的比例最大的结果即为最终的结果。

(3)多对多问题:

有一种最常用的技术是:”纠错输出码“,分为两个阶段,编码阶段和解码阶段

编码阶段:对N个类别进行M次划分,每次将一部分类划分为正类,一部分类划分为反类,编码矩阵有两种形式:二元码和三元码,前者只有正类和反类,后者除了正类和和反类还有停用类,在解码阶段,各分类器的预测结果联合起来形成测试示例的编码,该编码与各类所对应的编码进行比较,将距离最小的编码所对应的类别作为预测结果。

例如:在上图(1)中,f1分类器使得所有的C2为正例,其他为反例,f2分类器使得C1,C3为正,剩余分类器如图所示,因此可以得到一串输入码,以C1为例,其输入码为(-1,+1,-1,+1,+1)对于测试用例(-1,-1,+1,-1,+1)计算它与其他类的距离,即计算输入码和测试用例的欧式距离以C1和测试用例为例=(-1-1)2+(+1-1)2+(-1-1)2+(+1+1)2+(+1-1)2=12½

海明距离:

计算海明距离的一种方法,就是对两个位串进行异或(xor)运算,并计算出异或运算结果中1的个数。例如110和011这两个位串,对它们进行异或运算,其结果是:
110⊕011=101
异或结果中含有两个1,因此110和011之间的汉明距离就等于2

多分类问题multicalss classification的更多相关文章

  1. 从损失函数优化角度:讨论“线性回归(linear regression)”与”线性分类(linear classification)“的联系与区别

    1. 主要观点 线性模型是线性回归和线性分类的基础 线性回归和线性分类模型的差异主要在于损失函数形式上,我们可以将其看做是线性模型在多维空间中“不同方向”和“不同位置”的两种表现形式 损失函数是一种优 ...

  2. 吴恩达机器学习笔记28-多类分类(Multiclass Classification)

    当我们有不止两种分类时(也就是

  3. 脸型分类-Face shape classification using Inception v3

    本文链接:https://blog.csdn.net/u011961856/article/details/77984667函数解析github 代码:https://github.com/adoni ...

  4. 感知机分类(perceptron classification)

    概述 在机器学习中,感知机(perceptron)是二分类的线性分类模型,属于监督学习算法.输入为实例的特征向量,输出为实例的类别(取+1和-1). 感知机对应于输入空间中将实例划分为两类的分离超平面 ...

  5. 第三章——分类(Classification)

    3.1 MNIST 本章介绍分类,使用MNIST数据集.该数据集包含七万个手写数字图片.使用Scikit-Learn函数即可下载该数据集: >>> from sklearn.data ...

  6. stanford coursera 机器学习编程作业 exercise 3(逻辑回归实现多分类问题)

    本作业使用逻辑回归(logistic regression)和神经网络(neural networks)识别手写的阿拉伯数字(0-9) 关于逻辑回归的一个编程练习,可参考:http://www.cnb ...

  7. 【Todo】【转载】Spark学习 & 机器学习(实战部分)-监督学习、分类与回归

    理论原理部分可以看这一篇:http://www.cnblogs.com/charlesblc/p/6109551.html 这里是实战部分.参考了 http://www.cnblogs.com/shi ...

  8. 基本分类方法——KNN(K近邻)算法

    在这篇文章 http://www.cnblogs.com/charlesblc/p/6193867.html 讲SVM的过程中,提到了KNN算法.有点熟悉,上网一查,居然就是K近邻算法,机器学习的入门 ...

  9. CART分类与回归树与GBDT(Gradient Boost Decision Tree)

    一.CART分类与回归树 资料转载: http://dataunion.org/5771.html        Classification And Regression Tree(CART)是决策 ...

随机推荐

  1. ASP.NET MVC开发微信(三)

  2. Android——android:gravity 和 android:layout_Gravity

    LinearLayout有两个非常相似的属性: android:gravity与android:layout_gravity. 他们的区别在于: android:gravity 属性是对该view中内 ...

  3. 02-自定义CALayer

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...

  4. H264-AVS POC理解

    H264码流的输出顺序是编码顺序,所以在编码B帧的时候,由于B是双向预测,需要先编码后面编码帧P/I,这时候先输出I/P,后面才有B帧. 在解码段拿到相应的I/P帧后,不能马上丢到buffer lis ...

  5. 将本地仓库托管到GitHub

    在初始化仓库之前,要确认ssh key是否正确 ssh -T git@github.com 正确的结果如下 Hi username! You've successfully authenticated ...

  6. sublime text编辑器删除已安装的插件

    1.ctr+shift+P,输入package2.查找remove package3.输入你要删除的package4.回车,OK

  7. iOS 7中使用UINavigationController进行pop崩溃

    最近在一个项目中遇到一种情况,push到一个界面,如果那个界面未请求到数据,则直接pop回去,然而使用 [self.navigationController popViewControllerAnim ...

  8. MSP430F149学习之路——LED

    #include <msp430x14x.h> void int_clk(); void delay(int i); void main() { WDTCTL = WDTPW + WDTH ...

  9. linux配置tns

    .三个配置文件都是放在$ORACLE_HOME\network\admin目录下. .sqlnet.ora确定解析方式 .listener.ora上设SID_NAME,通常用于JDBC访问,对应的错误 ...

  10. BZOJ1996 合唱队 区间DP

    OJ地址:http://www.lydsy.com/JudgeOnline/problem.php?id=1996 设dp(i,j,k)代表在理想结果中[i,j]段最后添加的是i或j(k=0or1) ...