版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhq9695/article/details/87603717
如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~
0. 前言
本篇介绍机器学习中的多分类和类别不平衡问题。
1. 多分类学习
一些算法可以直接进行多分类,而另一些算法则不行,基本思路是:将多分类任务拆为若干个二分类任务求解。
- 一对一(One vs. One, OvO):给定数据集,将 个类别两两配对,产生 个二分类任务,最终结果通过投票产生
- 一对其余(One vs. Rest, OvR):给定数据集,每次将一个类作为正类,其余类作为反类,训练 个分类器,最终结果通过投票产生
- 多对多(Many vs. Many, MvM):给定数据集,每次将若干个类作为正类,若干个其他类作为反类,使用纠错输出码ECOC,对 个类别作 次划分,产生 个分类器, 个分类器对测试样例进行预测,预测结果组成一个编码,与 个类别的编码对比,距离最短的类别就是结果
在类别较少时,OvO的存储开销和测试时间开销通常比OvR更大。
在类别较多时,OvO的训练时间开销通常比OvR更小。
ECOC编码越长,纠错能力越强,计算、存储开销越大。对于同等长度的编码,任意两个类别之间的距离越远,纠错能力越强。
2. 类别不平衡
类别不平衡(class-imbalance)是指分类任务中不同类别的训练样例数目差别很大。
现有技术大体上有三类做法:
- 对数目多的类别欠采样:去除一些样例,使得正例、反例数目接近
- 对数目少的类别过采样:增加一些样例,使得正例、反例数目接近
- 阈值移动:直接对原始数据集进行学习,在决策时使用再缩放, ,则判断为正例, 表示正例数目, 表示反例数目
如果欠采样随机丢失样例,可能丢失一些重要信息。
如果过采样不能简单的进行重采样,可能会导致过拟合。
如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~