[搬运]机器学习中的分类任务

2020-12-16  本文已影响0人  数科每日

参考原文

在 machinelearningmastery 看到一篇介绍分类任务(Classification)的文章, 作者把分类任务涉及的概念做了一个综述,我感觉这篇文章写得非常详细, 对于理解ML 中分类问题非常有帮助, 这篇文章是对原文的一个概括。


1. 什么是分类任务

在机器学习中, 分类任务为输入的记录贴上各种标签。 比如:

分类算法通过样本来学习如何将输入记录分类。 对于学习数据来说, 每个 lable 对应的数据最好能够覆盖该lable 涉及的各种情况, 这样算法才能够尽可能的学习到每个lable的知识。

数值化标签

在训练之前, 往往要将 lable 变成一个数值才能进行后续的计算。 比如对于垃圾邮件判断问题, “非垃圾邮件” 记为 0, “垃圾邮件” 记为1。

模型性能指标

对于一个模型来说, 使用者最关心的就是其性能如何。对于机器学习模型来说, 其性能往往和使用场景挂钩, 不同的场景对模型的要求并不相同。 但是对于分类任务来说, 这里给出了2个常用的性能指标。

2. 分类任务类型

  1. Binary Classification:结果只有2个类别,比如是否是垃圾邮件。
  2. Multi-Class Classification:结果不止2个分类,比如判断手写数字是 0-9中的哪个字符。但是结果只能是多种类型中的一种
  3. Multi-Label Classification: 不同于前两类,这种任务重每个记录可以对应不止一个标签。
  4. Imbalanced Classification:对于1,2 类型来说,如果其中某种lable 对应的记录特别多而其他lable 对应的记录特别少,这时候就是 Imbalanced Classification。异常检测是这类任务的代表。

2.1 Binary Classification

常见问题:

Binary Classification 对应的结果只有2中, 0或者1, 使得这类任务天然的对应到 Bernoulli probability distribution。

常见的可以解决此类任务算法:

其中 Logistic Regression, Support Vector Machine 是专门为 Binary Classification 设计的算法。

2.2 Multi-Class Classification

统计上对应的分布是Multinoulli probability distribution。

常见问题:

常见的可以解决此类任务算法:

如果想使用 binary classification 算法来解决 Multi-Class Classification 问题, 有2中策略

对于这两种策略, 网上有很多讨论,这里就不再详细讨论了。

2.3 Multi-Label Classification

常见问题:

常见的可以解决此类任务算法:

2.4 Imbalanced Classification

Imbalanced Classification 往往和binary classification 类似, 比如判断一个病人是否患有某种疾病。 结果通常也是 “是” 或者 “否”,但是不同点在于不同标签对应数据量的比例。 如果某种疾病发病率很高,患病人数和健康人数大致相同, 那么这类问题就是 binary classification 比如近视。 如果疾病发病率很低, 比如某种癌症, 那么这类问题就是Imbalanced Classification

常见问题:

这类问题使用的算法往往和 binary classification 相同, 但是由于数据比例极端不平衡, 所以往往要事先对数据平衡性进行预处理。常见的方式有两种, 第一是将占比大的数据删除,第二是将占比很小的数据扩增。 方法有

也有些算法对于这种极端不均衡的数据做了处理,比如

最后, 对于这类问题, 使用的模型衡量指标也会有所不同, 常用的有

上一篇 下一篇

猜你喜欢

热点阅读