logic多分类的两种类别
我们已经知道,普通的logistic回归只能针对二分类(Binary Classification)问题,要想实现多个类别的分类,我们必须要改进logistic回归,让其适应多分类问题。
关于这种改进,有两种方式可以做到。
第一种方式是直接根据每个类别,都建立一个二分类器,带有这个类别的样本标记为1,带有其他类别的样本标记为0。假如我们有个类别,最后我们就得到了个针对不同标记的普通的logistic分类器。这种回归概率之和不为0,因为这种分类方法并不互斥;
第二种方式是修改logistic回归的损失函数,让其适应多分类问题。这个损失函数不再笼统地只考虑二分类非1就0的损失,而是具体考虑每个样本标记的损失。这种方法叫做softmax回归,即logistic回归的多分类版本。
我们首先简单介绍第一种方式。
对于二分类问题,我们只需要一个分类器即可,但是对于多分类问题,我们需要多个分类器才行。假如给定数据集,它们的标记,即这些样本有个不同的类别。
我们挑选出标记为的样本,将挑选出来的带有标记的样本的标记置为1,将剩下的不带有标记的样本的标记置为0。然后就用这些数据训练出一个分类器,我们得到(表示针对标记的logistic分类函数)。
按照上面的步骤,我们可以得到个不同的分类器。针对一个测试样本,我们需要找到这个分类函数输出值最大的那一个,即为测试样本的标记:
下面我们介绍softmax回归。
对于有个标记的分类问题,分类函数是下面这样:
在这里,我们将上式的所有的组合起来,用矩阵来表示,即:
这时候,softmax回归算法的代价函数如下所示(其中):
很明显,上述公式是logistic回归损失函数的推广。
我们可以把logistic回归的损失函数改为如下形式:
但是,需要特别注意的是,对于,softmax回归和logistic回归的计算方式是不同的。
对于选择softmax分类器还是个logistic分类器,取决于所有类别之间是否互斥。所有类别之间明显互斥用softmax分类器,所有类别之间不互斥有交叉的情况下最好用个logistic分类器。
logic多分类的两种类别相关推荐
- ML之分类预测之ElasticNet:利用ElasticNet回归对二分类数据集构建二分类器(DIY交叉验证+分类的两种度量PK)
ML之分类预测之ElasticNet:利用ElasticNet回归对二分类数据集构建二分类器(DIY交叉验证+分类的两种度量PK) 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 # ...
- php 无限极分销,PHP实现无限极分类的两种方式
无限极分类说简单点就是一个类可以分成一个分子类,然后一个子类又可以分另一个子类这样无限分下去,就是好象windows可以新建一个文件夹,然后在这个文件夹里又可以建一个文件夹,PHP要实现无限极分类有两 ...
- php 递归实现无限极分类和排序_无限极分类的两种方式,递归和引用
说到无限极分类,比较常见的做法是在建表的时候,增加一个parnet_id字段用来区别自己所属的分类(是顶级分类还是子分类) 由于展示数据的时候,需要表达出这种所属关系,所以必然要在读取数据的时候进行一 ...
- 设计模式简介及GoF 23种模式的分类(两种分类方式)
一.设计模式(Design Patterns)简介: 设计模式代表了最佳实践,通常被有经验的面向对象的开发人员使用. 设计模式是程序猿在软件开发过程中面临的一般问题的解决方案. 设计模式是一套反复使用 ...
- PHP+MySQL 无限级分类的两种实现方案
方案一: 表结构: id int primary key auto_increment; name varchar(40); pid int default 0; #父类id,默认值为0 顶级分类的 ...
- php无限极分类并添加指定值,PHP实现无限极分类的两种方式,递归和引用
function generateTree($array){//第一步 构造数据 $items = array();foreach($array as $value){$items[$value['i ...
- 大数据 机器学习 分类算法_13种用于数据科学的机器学习分类算法及其代码
大数据 机器学习 分类算法 The roundup of most common classification algorithms along with their python and r cod ...
- python多分类混淆矩阵代码_深度学习自学记录(3)——两种多分类混淆矩阵的Python实现(含代码)...
深度学习自学记录(3)--两种多分类混淆矩阵的Python实现(含代码),矩阵,样本,模型,类别,真实 深度学习自学记录(3)--两种多分类混淆矩阵的Python实现(含代码) 深度学习自学记录(3) ...
- pytorch 语义分割loss_关于pytorch语义分割二分类问题的两种做法
形式1:输出为单通道 分析 即网络的输出 output 为 [batch_size, 1, height, width] 形状.其中 batch_szie 为批量大小,1 表示输出一个通道,heigh ...
最新文章
- linux 加密库 libsodium 安装
- oracle 打印SQL
- 宝宝树携手网易云信打造母婴咨询沟通新体验
- 蛮力法在求解“最近对”问题中的应用(JAVA)
- 使用AsyncEnumerator简化异步操作
- 《剑指offer》第二十八题(对称的二叉树)
- python上机实验报告读取文件_Python程序设计实验八:文件
- USB端口在Mac上不起作用?这是修复方法
- [初识python]使用python给单词表加音标
- 销售订单创建BAPI实例(刘欣)
- ROS2安装时出现Connection failed [IP: 91.189.91.39 80]
- Smart-doc的脚本生成在线文档(精简官方文档描述)
- Android听筒模式和免提模式的切换
- 2d游戏地图制作html5,如何通过 Cocos2d-html5 使用砖块地图编辑器
- 自定义控件 仿微信朋友圈文字展开全文功能
- ResourceUtils
- 解决Windows10 无线显示屏连接失败问题
- CStdioFile,CFile类,文本文件处理(MFC学习园地)
- 用SETFOS模拟Tadf OLED和超荧光OLED
- R语言入门基础——基础操作篇(极为基础的指令代码)
热门文章
- Python的filter方法实现筛选功能
- 2019 Python100道 面试 题,你会几道?
- php mysql建表_mysql建表测试
- python多态的概念_python中的多态
- python调用exe程序 传入参数_关于使用c#调用python脚本文件,脚本文件需要传递参数...
- MySQL如何存储Emoji表情,UTF-8和UTF-8MB4字符编码有何区别
- python数值运算符也叫内置运算符_Python全栈工程师(数值类型、运算符)
- vba根据内容调整word表格_【邮件合并】不会VBA也能批量生成Word封面
- php实现队列上传,php实现队列
- linux加载虚拟sriov网卡,如何配置BroadCOM网卡的SR-IOV功能