ML18分类与回归的区别

主要观点来自于知乎问题,分类与回归的区别https://www.zhihu.com/question/21329754

观点1:

分类模型与回归模型在本质上是一样的,分类模型可将回归模型的输出离散化,回归模型也可以将分类模型的输出连续化。

几个加深理解分类与回归的例子:

  1. Linear Regression 与 Logistics Regression。

    • Linear Regression:输出一个标量 wx+b,这个值是连续值,所以可以用来处理回归问题
    • Logistics Regression:把输出的wx+b通过一个sigmoid函数映射到(0, 1)上,并划分一个阈值,大于阈值的分为一类,小于等于的分为另一类,可用来处理二分类问题。
    • 对于N分类问题,则是先得到N组w值不同的wx+b,然后归一化,比如可用softmax归一化,最后变成N个类上的概率,可以处理多分类问题。
  2. Support Vector Regression 和 Support Vector Machine:

    • SVR:输出 wx+b,即某个样本点到分类面的距离,是连续值,所以是回归模型。
    • SVM:把这个距离用 sign(·) 函数作用,距离为正(在超平面一侧)的样本点是一类,为负的是另一类,所以是分类模型。
  3. 朴素贝叶斯用于分类和回归:

    • 分类:y是离散的类别,所以得到离散的p(y|x),给定x,输出每个类上的概率
    • 回归:对离散的p(y|x)求期望 $\sum p(y|x)$ ,得到连续值,但因为此时y本身是连续的值,所以要先得到连续的概率密度函数 p(y|x),然后再对y求期望
  4. 神经网络用于 分类 和 回归:

    • 回归:最后一层有m个神经元,每个神经元输出一个标量,m个神经元的输出可以看做向量 v,现全部连到一个神经元上,则这个神经元输出wv+b,是一个连续值,可以处理回归问题,跟上面 Linear Regression 思想一样。

    • N分类:现在这m个神经元最后连接到 N 个神经元,就有 N 组w值不同的 wv+b,同理可以归一化(比如用 softmax )变成N个类上的概率

  5. 循环神经网络(RNN)用于分类和回归:

    • 跟CNN类似,输出层的值y=wv+b,可做分类与回归,区别在于,RNN的输出跟时间有关,即输出的是{y(t), y(t+1), …}序列

观点2:

回归与分类的根本区别在于输出空间是否为一个度量空间

回归问题与分类问题本质上都是要建立映射关系:

$$f(x) \rightarrow y, x \in A, y \in B$$

而两者的区别则在于:

  • 对于回归问题,其输出空间B是一个度量空间,即所谓“定量”。也就是说,回归问题的输出空间定义了一个度量。$d = F(y_{true}, y_{pred})$去衡量输出值与真实值之间的“误差”大小。例如:预测一瓶700毫升的可乐的价格(真实价格为5元)为6元时,误差为1;预测其为7元时,误差为2。这两个预测结果是不一样的,是有度量定义来衡量这种“不一样”的。(于是有了均方误差这类误差函数)
  • 对于分类问题,其输出空间B不是度量空间,即所谓“定性”。也就是说,在分类问题中,只有分类“正确”与“错误”之分,至于错误时是将Class 5分到Class 6,还是Class 7,并没有区别,都是在error counter上+1。

而并不是很简单的理解为:”连续即回归,离散即分类“。