多分类问题multicalss classification
多分类问题:有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½
海明距离:
多分类问题multicalss classification的更多相关文章
- 从损失函数优化角度:讨论“线性回归(linear regression)”与”线性分类(linear classification)“的联系与区别
1. 主要观点 线性模型是线性回归和线性分类的基础 线性回归和线性分类模型的差异主要在于损失函数形式上,我们可以将其看做是线性模型在多维空间中“不同方向”和“不同位置”的两种表现形式 损失函数是一种优 ...
- 吴恩达机器学习笔记28-多类分类(Multiclass Classification)
当我们有不止两种分类时(也就是
- 脸型分类-Face shape classification using Inception v3
本文链接:https://blog.csdn.net/u011961856/article/details/77984667函数解析github 代码:https://github.com/adoni ...
- 感知机分类(perceptron classification)
概述 在机器学习中,感知机(perceptron)是二分类的线性分类模型,属于监督学习算法.输入为实例的特征向量,输出为实例的类别(取+1和-1). 感知机对应于输入空间中将实例划分为两类的分离超平面 ...
- 第三章——分类(Classification)
3.1 MNIST 本章介绍分类,使用MNIST数据集.该数据集包含七万个手写数字图片.使用Scikit-Learn函数即可下载该数据集: >>> from sklearn.data ...
- stanford coursera 机器学习编程作业 exercise 3(逻辑回归实现多分类问题)
本作业使用逻辑回归(logistic regression)和神经网络(neural networks)识别手写的阿拉伯数字(0-9) 关于逻辑回归的一个编程练习,可参考:http://www.cnb ...
- 【Todo】【转载】Spark学习 & 机器学习(实战部分)-监督学习、分类与回归
理论原理部分可以看这一篇:http://www.cnblogs.com/charlesblc/p/6109551.html 这里是实战部分.参考了 http://www.cnblogs.com/shi ...
- 基本分类方法——KNN(K近邻)算法
在这篇文章 http://www.cnblogs.com/charlesblc/p/6193867.html 讲SVM的过程中,提到了KNN算法.有点熟悉,上网一查,居然就是K近邻算法,机器学习的入门 ...
- CART分类与回归树与GBDT(Gradient Boost Decision Tree)
一.CART分类与回归树 资料转载: http://dataunion.org/5771.html Classification And Regression Tree(CART)是决策 ...
随机推荐
- Rehat 5.8下oracle11g安装
Oracle 11g Redhat 5安装 一.检查硬件是否满足要求 检查一内存 On Linux x86: At least 1 GB of RAM 内存至少1G To determine the ...
- 关于lambda表达式在javascript中的使用
了解过js函数的同学应该都知道js的函数有很多种创建方式. 如: function fun(){}: var fun=function(){}: 但最近的学习中发现了lambda表达式型的创建js的匿 ...
- The BKS System for the Philco-2000 学习笔记
最近因为学业需要阅读这一篇论文......一把鼻涕一把泪地翻了一边以求更好地理解,谁让我英语渣呢....有很多地方翻译得感觉还是有问题或者不流畅,还请大家多多指教. The BKS System fo ...
- 慕课网-安卓工程师初养成-1-5 使用Eclipse开发Java程序
来源: http://www.imooc.com/video/1412 eclipse --- IDE 集成开发环境(IDE)是一类软件 将程序开发环境和程序调试环境集合在一起,提高开发效率 其他ID ...
- redis(二)Redis适用场景,如何正确的使用
网络IO模型 Memcached是多线程,非阻塞IO复用的网络模型,分为监听主线程和worker子线程,监听线程监听网络连接,接受请求后,将连接描述字pipe 传递给worker线程,进行读写IO, ...
- Informatica 启动、停止工作流命令
切换到Infa用户su - infa 停止$INFA_HOME/server/tomcat/bin/infaservice.sh shutdown 启动$INFA_HOME/server/tomcat ...
- java.lang.Exception: Socket bind failed: [730013] An attempt was made to acc
在CMD命令行中启动运行startup.bat,启运程序总是闪退,查看日志发现如下错误: 26-Jan-2016 18:12:34.463 SEVERE [main] org.apache.coyot ...
- Linux使用常见错误集锦
1. scp拷贝文件失败问题 当在 shell startup script (比如 profile , bashrc)自动执行过程中产生了任何内容输出时, scp / sftp会把这些 echo 回 ...
- Oracle自增ID实现
首先,创建一张表: CREATE TABLE example( ID Number(4) NOT NULL PRIMARY KEY, NAME VARCHAR(25)); 然后,自定义一个序列(seq ...
- LAMP+LNMP视频教程
你是否在LAMP或是LNMP源码编译的道路上走过弯路,失败过或者目前还没有顺利安装过呢?另外网上有网上有很多LAMP/LNMP的一键安装脚本,如果拿过来直接用还是要改脚本.本教程的内容就能帮助你解决手 ...