非均衡分类问题是指在分类器训练时,正例数目和反例数目不相等(相差很大),或者错分正反例导致的代价不同(可从代价矩阵观测)时存在的问题。

而大多数情况下,不同类别的分类代价并不相等,而诸如信用卡欺诈等场景中,正反例的样本数目相差巨大,这就需要一些新的分类器性能度量方法和技术,来处理上述非均衡问题。

1、分类器性能度量指标

分类器学习常用的错误率指标会掩盖样例如何被错分的细节,可以采用更好的性能度量指标1 —— 正确率TP/(TP+FP)和召回率TP/(TP+FN)。

实际上,单独满足其中一个指标高性能较容易,但构造一个同时高正确率有高召回率的分类器很难。至于具体选择正确率还是召回率,关键在于场景或者说研究问题,例如在购物刷单问题中,正确率远比召回率更重要。

此外可以采用性能度量指标2 —— ROC曲线,即接收者操作特征曲线。

ROC曲线给出的是当阈值变化时,假阳率和真阳率之间的变化情况。因此,我们可以通过观察ROC曲线来调节分类器的阈值,使得分类器的性能最好处于ROC曲线的左上角。由ROC曲线衍生的AUC(曲线下的面积)指标给出了分类器的平均性能值。

def plotROC(predStrengths, classLabels):import matplotlib.pyplot as pltcur = (1.0,1.0)  # current plot nodeySum = 0.0 # for AUCnumPosClas = sum(numpy.array(classLabels)==1.0)numNegClas = len(classLabels) - numPosClasyStep = 1/float(numPosClas)xStep = 1/float(numNegClas)sortedIndicies = predStrengths.argsort()fig = plt.figure()fig.clf()ax = plt.subplot(111)for index in sortedIndicies.tolist()[0]:if classLabels[index] == 1.0:delX = 0; delY = yStep;else:delX = xStep; delY = 0;ySum += cur[1]ax.plot([cur[0],cur[0]-delX],[cur[1],cur[1]-delY], c='b')cur = (cur[0]-delX,cur[1]-delY)ax.plot([0,1],[0,1],'b--')plt.xlabel('False positive rate'); plt.ylabel('True positive rate')plt.title('ROC curve for AdaBoost horse colic detection system')ax.axis([0,1,0,1])plt.show()print "the Area Under the Curve is: ",ySum*xStep

2、基于代价敏感的学习方法

一方面,重构训练数据集。即不改变已有算法,而是根据样本的不同错分代价给训练集中的每一个样本赋一个权值,接着按权重对原始样本集进行重构。

另一方面,引入代价敏感因子,设计出代价敏感的分类算法。通常可以将各分类器学习时的目标函数改造成最小化代价函数,即对小样本赋予较高的代价,大样本赋予较小的代价,期望以此来平衡样本之间的数目差异。

3、改造分类器的训练数据 —— 过抽样或者欠抽样

过抽样,即保留样本数目小的类别的所有样本同时,再进行复制或者进行插值,扩大规模。注意对小样本数目的类别的样本们进行插值有可能造成过拟合。

欠抽样,即欠抽样或者剔除样本数目大的类别中的部分样本,缩小规模。进行剔除时,尽量选择那些离决策边界较远的样例。

机器学习中的非均衡分类问题相关推荐

  1. 从重采样到数据合成:如何处理机器学习中的不平衡分类问题?

    从重采样到数据合成:如何处理机器学习中的不平衡分类问题? 2017-03-19 13:17 来源:机器之心 技术 原标题:从重采样到数据合成:如何处理机器学习中的不平衡分类问题? 选自Analytic ...

  2. 从重采样到数据合成:如何处理机器学习中的不平衡分类问题? 转载 2017年08月01日 17:09:03 标签: 机器学习 / 数据 719 转自:http://www.sohu.com/a/12

    从重采样到数据合成:如何处理机器学习中的不平衡分类问题? 转载 2017年08月01日 17:09:03 标签: 机器学习 / 数据 719 转自:http://www.sohu.com/a/1293 ...

  3. 机器学习中的不平衡分类方法(part3)--不平衡分类学习策略

    学习笔记,仅供参考,有错必纠 参考自:<机器学习中的不平衡分类方法>-- 康琦,吴启迪 文章目录 不平衡分类学习策略 重采样策略 代价敏感学习 单类别函数 集成学习方法 不平衡分类学习策略 ...

  4. 机器学习中的不平衡分类方法(part2)--模型评估与选择

    学习笔记,仅供参考,有错必纠 参考自:<机器学习中的不平衡分类方法>-- 康琦,吴启迪 文章目录 模型评估与选择 训练误差与测试误差 过拟合与欠拟合 模型选择 评估方法 模型评估与选择 训 ...

  5. 机器学习中的不平衡分类方法(part1)--绪论

    学习笔记,仅供参考,有错必纠 参考自:<机器学习中的不平衡分类方法>-- 康琦,吴启迪 文章目录 绪论 概述 分类问题概述 不平衡分类问题概述 研究现状 绪论 概述 数据挖掘(Data M ...

  6. envi最大似然分类_闲谈最大后验概率估计(MAP estimate)amp;极大似然估计(MLE)和机器学习中的误差分类...

    上一篇文章中提到了一个有趣的实验,简单来说就是1-100中有若干个数字是"正确的",只告诉其中一部分"正确的"数字,去猜全部"正确的"数字. ...

  7. 机器学习中的评价指标(分类指标评Accuracy、Precision、Recall、F1-score、ROC、AUC )(回归指标评价MSE、RMSE、MAE、MAPE、R Squared)

    文章目录 1.机器学习中的评价指标 基础 (一)分类指标评价 1.Accuracy 2.Precision.查准率 3.Recall.查全率 4.F1-score 举个例子: 5.ROC 6.AUC ...

  8. 机器学习中的不平衡分类方法(part5)--决策树与随机森林

    学习笔记吗,仅供参考,有错必纠 文章目录 决策树与随机森林 基本流程 决策树定义及结构 决策树学习步骤 划分选择 信息增益 增益率 基尼基数 剪枝处理 随机森林 决策树与随机森林 决策树(decisi ...

  9. 机器学习中常用的分类算法总结

    分类算法 ​ 分类算法和回归算法是对真实世界不同建模的方法.分类模型是认为模型的输出是离散的,例如大自然的生物被划分为不同的种类,是离散的.回归模型的输出是连续的,例如人的身高变化过程是一个连续过程, ...

最新文章

  1. 蓝桥杯国赛-数正方形-java
  2. 实例:手写 CUDA 算子,让 Pytorch 提速 20 倍
  3. HLS Pargmas(2) interface
  4. AspNetCoreApi 跨域处理(CORS )
  5. fh 幅频特性曲线怎么画fl_初学者怎么练习线条?教你如何画出流畅线条的技巧...
  6. Java 7:WatchService
  7. ajax清请求过程,JS深入基础之Ajax的请求过程
  8. uart怎么判断帧错误_UART通讯总线工作原理的理解
  9. 简约黑板擦表白特效网源码
  10. shipyard安装
  11. 搞机器学习还敲什么代码
  12. 解读思维导图(一)误区
  13. 服务器的硬盘内存型号大小怎么查看,怎么查服务器硬盘和内存大小
  14. Python绘制云图
  15. 来个水帖:下载Dev
  16. duck typing
  17. 技能分享:扩展名怎么修改?
  18. 使用js在线将pdf转为图片
  19. 推荐一些好的英语python书籍知识点
  20. html input onfocus

热门文章

  1. 03:MySQL图形管理工具
  2. 作为PA AE工程师需要了解的知识
  3. NPS内网穿透配置(用户版)
  4. 手机h5像素_塔防游戏:全民主公H5,最好玩的塔防游戏
  5. FPGA-Verilog多功能数字时钟
  6. 用Rust写一个斗兽棋游戏
  7. MYSQLDUMP参数详解 --all-databases
  8. php网页游戏学习之xnova(ogame)源码解读,PHP网页游戏学习之Xnova(ogame)源码解读(二)...
  9. 8A计算机游戏问题课文翻译,英语课文翻译!!!急求!!
  10. 黑客们的故事(五)“邪恶帝国”的缔造者