分类(6):不平衡和多分类问题

2023-11-06

原版:http://www.jianshu.com/p/15185f0ecb57

一、不平衡问题

(1)不平衡数据

例如:一个产品生产的不合格产品数量会远低于合格产品数量。信用卡欺诈的检测中,合法交易远远多于欺诈交易。
这时候,准确率的度量会出现一些问题,因为她把每个类都看得同等重要。
例如,1%的信用卡交易是欺诈行为,则预测每个交易都是合法的模型有99%的准确率,它也可能检测不到任何欺诈交易。

(2)混淆矩阵

在不平衡数据中,稀有类比较有意义,对于二元分类,稀有类通常记为正类,而多数类被认为是负类。下面显示了混淆矩阵:

5_37.png

真正(true positive,TP):++
假正(false positive,FP):-+
真负(true negative,TN):–
假负(false negative,FN):+-

真正率(true positive rate,TPR)或灵敏度(sensitivity):

TPR=TPTP+FN=(++)(++)+(+)

真负率(true negative rate,TNR)或特指度(specificity):
TNR=TNTN+FP=()()+(+)

假正率(false positive rate,FPR):
FPR=FPTN+FP=(+)()+(+)

假负率(false negative rate,FNR):
FNR=FNFN+TP=(+)(+)+(++)

精度(precision):
p=TPTP+FP=(++)(++)+(+)

召回率(recall)即为真正率:
r=(TP)(TP)+(FN)=(++)(++)+(+)

精度和召回率是很重要的度量量,称为 F1 统计量:
F1=2rpr+p=2×TP2×TP+FP+FN=21r+1p

F1 是召回率和精度的调和平均数,F1 趋近于它们之间的较小值,因此,一个高的 F1 确保精度和召回率都高。
Fb 的公式:
Fb=(b2+1)rpr+b2p=(b2+1)1r+b2p

低的 b 使得 Fb 更加接近精度,高的 b 使得 Fb 更加接近召回率。

(3)接受者操作曲线(ROC)

是真正率和假正率取折中的一种图形化方法。真正率为 y 轴,假正率为 x 轴。

ROC的几个关键点:

(TPR=0,FPR=0):把所有的都预测为负
(TPR=1,FPR=1):把所有的都预测为正
(TPR=1,FPR=0):理想模型。只要是正的,都预测为正。

一个好的分类器,尽量靠近左上角,随机猜想为对角线。

5_38.png

产生ROC曲线方法:
5_39.png

(4)代价敏感学习

模型 M 的代价:

Ct(M)=TP×C(+,+)+FP×C(,+)+FN×C(+,1)+FN×C(,)

如下是一个代价矩阵:
5_40.png

它可以把决策边界扩展:
5_41.png

对于代价矩阵,若 C(+,+)=C(-,-)=0 的情况,分类正确不需要代价,则:
5_42.png

求解可以得到决策边界。

基于抽样方法

对于样本进行处理,假设有100个正样本和1000个负样本。
不充分抽样(udersampling):取和正样本一样数量的负样本,取100个负样本,形成训练集。
过分抽样(oversampling):将正样本复制,或者重复抽样,使得正样本的数量和负样本一样1000个。

二、多类问题

1、one-vs-rest 方法。将多类问题分解为 K 个二类问题,将属于yi的归为正类,而其他类被分为负类,依次进行。
2、one-vs-one 方法。它构建K(K-1)/2 个二分类器,每一个分类器用来区分一对类 (yi,yj) ,当为类 (yi,yj) 建立分类器的时候,将不属于 (yi,yj) 的样本忽略掉。

例子:
5_43.png

5_44.png

使用上述两种方法建模后,可能出现分类平局。另一种方法,将输出转变为概率估计,将实例给予高概率的类。

纠错输出编码

纠错输出编码(error-correcting output coding,ECOC):一种处理多分类更加鲁棒的方法,给予每个类一个代码字,对于每个可能预测错误的,选取距离代码字最近的那一类。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

分类(6):不平衡和多分类问题 的相关文章

随机推荐

  • python可以进行软件开发吗,python可以做软件开发吗

    本篇文章给大家谈谈python可以进行软件开发吗 以及python可以做软件开发吗 希望对各位有所帮助 不要忘了收藏本站喔 1 python可以开发什么软件 主要可以做小程序 爬虫程序 用于系统编程等等还是很广泛的 Python的应用领域分
  • element-ui中el-table的错位问题解决,以及新的错位问题的出现(与el-tabs相关)

    element ui的表格错位问题 只出现在带有设置了fixed的列的el table中 这是一个渲染机制的问题 通过调用一遍doLayout方法就可以解决 但是套在el tabs里的el table 就是另一种情况了 简单错位 这是我瞎起
  • vr设备的服务器性能指标,让我们一起聊聊VR眼镜技术参数

    时下最炙手可热的数码产品无疑就是VR眼镜了 而作为影响VR体验的重要一部分 VR眼镜技术参数也成为了很多人讨论的焦点 目前市面上的VR设备良莠不齐 具体什么样的VR眼镜技术参数规格才是优秀的产品 而这些VR眼镜技术参数对用户们的体验来说 又
  • 同步代码块synchronized的使用与解析

    Java 同步块 synchronized block 用来标记方法或者代码块是同步的 Java同步块用来避免竞争 本文介绍以下内容 Java同步关键字 synchronzied 实例方法同步 静态方法同步 实例方法中同步块 静态方法中同步
  • 量化择时——平均K线图双均线策略(第1部分—策略效果测算)

    文章目录 平均K线图概述 OHLC的计算方式 K线图走势对比 平均K线图阴阳线交易策略 交易规则 测算结论 双均线策略测算 测算规则 测算结论 平均K线图概述 平均K线图是蜡烛图的一种分支 在日本 Heikin意味着 平均 Ashi意味着
  • python root:code for hash md5 was not found.错误

    可能还会伴随一大堆其他错误 ERROR root code for hash md5 was not found Traceback most recent call last File usr local Cellar python 2
  • qt 怎么检测鼠标在不在某个控件上

    方式一 推荐 感觉这种事件过滤器的方法捕捉比较敏感 记得安装事件过滤器 this gt installEventFilter this protected bool eventFilter QObject obj QEvent event
  • k8s 配置 glusterFS 动态供给

    部署环境 Host IP k8s 版本 glusterFS版本 heketi版本 heketi client 版本 k8s master1 192 168 10 1 1 20 0 9 5 1 el7 heketi 8 0 0 1 heket
  • 短 URL 服务的设计与实现

    转载 https mp weixin qq com s DJM7KFFfgZ2AgfrrYHXSzQ 短url的好处有 短 短信和许多平台 微博 有字数限制 太长的链接加进去都没有办法写正文了 好看 比起一大堆不知所以的参数 短链接更加简洁
  • 如何查看端口是被哪个程序占用的

    一 开始 gt 运行 gt cmd 或者是window R组合键 调出命令窗口 二 输入命令 netstat ano 列出所有端口的情况 在列表中我们观察被占用的端口 比如是8080 首先找到它 三 查看被占用端口对应的PID 输入命令 n
  • C语言中输入输出重定,freopen()妙用。

    使用的理由 范围 如果输入数据很庞大 需要一次又一次的重新输入和调试时可采用本函数 freopen 函数 1 格式 FILE freopen const char filename const char mode FILE stream 2
  • window如何实时刷新日志文件

    1 安装windows git 下载地址 Git Downloading Package git scm com 2 打开git bash 输入tail exe f 日志文件路径
  • 19-Openwrt双固件升级

    在上一章节 Openwrt sysupgrade系统升级 中 我们描述了sysupgrade升级系统的过程 这种升级过程会直接firmware分区进行写入 无法保证系统的安全性 只要在写入过程突然断电就会出现系统写入失败 升级失败无法启动系
  • xml文件c语言读取函数,IDL读取XML文件

    使用IDL读取RADARSAT 2的数据 需要用到lutSigma xml文件中的定标常数来计算相关参量 本文需要提取lutSigma xml中的offset和gains参数 使用IDL来读取xml文件 并且提取特定的节点下的参数 经过实验
  • fifo复位问题

    一次笔者在调试K7和5EV模块通信时候遇到fifo状态异常问题 K7现象 full和empty均拉高 5EV现象 empty拉高 full拉低 但是写信号已经产生 问题原因 fifo的复位来的太早 而随路时钟来的太晚导致 因为fifo的写时
  • Host is not allowed to connect to this MySQL server解决方法

    先说说这个错误 其实就是我们的MySQL不允许远程登录 所以远程登录失败了 解决方法如下 在装有MySQL的机器上登录MySQL mysql u root p密码 执行use mysql 执行update user set host whe
  • 服务器内存型号2400,S26361-F3934-E511 8GB 1Rx4 PC4-2400 RX2540M2服务器内存

    S26361 F3934 E511 8GB 1Rx4 DDR4 PC4 2400 ECC Primergy CX2550M2 TX2560M2 RX2510M2 RX2530M2 RX2540M2 RX2560M2富士通服务器内存A3C40
  • nginx配置访问springboot服务

    一 idea中可通过 clean package打包命令 打好包 比如 端口为8080 服务访问地址为 前端打包文件为dist 访端口为8000 则可以这样配置nginx server listen 8000 location root h
  • OpenSSL在QT中的使用

    现在需要把OpenSSL集成到QT里面 本来是想直接把Cygwin的动态库和头文件直接拿来用的 没想到链接的时候报了一票错误 那好吧 重新自己build一个 这样来的也干净些 到官网上下载源码 根据里面的INSTALL W32一步步来 首先
  • 分类(6):不平衡和多分类问题

    原版 http www jianshu com p 15185f0ecb57 一 不平衡问题 1 不平衡数据 例如 一个产品生产的不合格产品数量会远低于合格产品数量 信用卡欺诈的检测中 合法交易远远多于欺诈交易 这时候 准确率的度量会出现一