分类与回归(如何把分类问题转化为回归问题解决)

如何把分类问题转化为回归问题解决

一、分类与回归的区

我们都知道,有监督学习算法都在做一样事情,那就是预测。但是显然,针对不同的事件,我们有不同的预测的目标。其中,预测目标的形式(变量)有离散和连续两种类型。

我们将预测离散变量的行为称为分类,将预测连续变量的行为称为回归。

二、分类如何转化为回归

分类问题转化为回归问题是基于概率体系的。
我们在回归问题中,试图找到一种映射关系,满足样本特征与标签的分布(这种映射往往是函数)。
而在预测一件事物是不是属于某一类别时,我们通过回归来预测这件事物属于这一类别的概率(这个回归最后会拟合出一个函数)

  • 比如,在单输出线性回归中,我们假定事物属于某一类别的概率与它的特征分布是满足线性关系的,所以我们会用回归去拟合一条线性函数,这条函数最后会被用来判断某一无标签样本属于这一类的概率值。

三、多分类和多输出回归(multi-output regression)

多分类很好理解,但是它有几种不同的情况,在这里不得不强调一下:

  1. OvO(一对一):对于n个类别,该种方法将其两两配对,训练了n*(n+1)/2个分类器,每个分类器都处理一个二分类任务,最后通过投票决定(例如:将预测最多的类作为最终分类的结果)。[该种方法虽然要训练O( n 2 n^2 n2)级别的分类器,但每个分类器只需处理简单的二分类任务,所以在类别很多时,它可能更有优势]
  2. OvR(一对多):该方法共训练N个分类器,每个分类器处理一个二分类任务,其中选择一个正类并将其余所有类别设为负类,最后同样投票决定最终结果。[该种方法训练的分类器少,适用于绝大多数情况,但是每个分类器包含所有数据,因此在类别较多时训练开销会比OvO大]
  3. MvM(多对多):ECOC(Error Correcting Output Codes)“纠错输出码”:编码时,通过“编码矩阵”划分类别并作出判断,得到最终的测试结果(其结果体现为一段编码);解码时,比较结果与矩阵中某一类的编码的相似程度,并输出相近的

但是,无论是哪一种多分类,它都需要训练多个分类器,每一种分类器对应一个单独的回归。这种思想我最先是在sklearn的官方文档上体会到的,源于他说的一句话For multiclass classification, the problem is treated as multi-output regression, and the predicted class corresponds to the output with the highest value.

另一个角度,有人认为,只要输出不是一个变量的回归就是都输出回归,例如预测一个点的坐标(x,y).

你可能感兴趣的:(机器学习常见问题,回归,分类,机器学习)