查看原文
其他

入门 | 区分识别机器学习中的分类与回归

2017-12-16 机器之心

选自MachineLearningMastery

作者:Jason Brownlee

机器之心编译

参与:Nurhachu Null、刘晓坤、李泽南


分类问题和回归问题之间有着很重要的区别。从根本上来说,分类是预测一个标签,回归是预测一个数量。我经常看到这样的问题:如何计算回归问题的准确率?


这种问题意味着提问的人并没有真正理解分类和回归之间的差别,以及准确率到底是在评估什么?


你会在这篇文章中发现分类和回归之间的区别。


读完本文,你会了解以下内容:


  • 预测建模是关于学习从输入到输出的函数映射的问题,这个映射称作函数逼近。

  • 分类是给一个样本预测离散型类别标签的问题。

  • 回归是给一个样本预测连续输出量的问题。


让我们开始吧。



教程概览


本教程分为以下 5 个部分:


1. 函数逼近

2. 分类

3. 回归

4. 分类与回归的对比

5. 分类问题和回归问题之间的转换


函数逼近


预测建模就是使用历史数据建立一个模型,去给没有答案的新数据做预测的问题。


关于预测建模,可以在下面这篇文章中了解更多信息。


  • Gentle Introduction to Predictive Modeling:https://machinelearningmastery.com/gentle-introduction-to-predictive-modeling/


预测建模可以被描述成一个近似求取从输入变量(X)到输出变量(y)的映射函数的数学问题。这被称为函数逼近问题。


建模算法的任务就是在给定的可用时间和资源的限制下,去寻找最佳映射函数。更多关于机器学习中应用逼近函数的内容,请参阅下面这篇文章:


  • 机器学习是如何运行的(how machine learning qork,https://machinelearningmastery.com/how-machine-learning-algorithms-work/)


一般而言,我们可以将函数逼近任务划分为分类任务和回归任务。


分类预测建模


分类预测建模是逼近一个从输入变量(X)到离散的输出变量(y)之间的映射函数(f)。


输出变量经常被称作标签或者类别。映射函数会对一个给定的观察样本预测一个类别标签。


例如,一个文本邮件可以被归为两类:「垃圾邮件」,和「非垃圾邮件」


  • 分类问题需要把样本分为两类或者多类。

  • 分类的输入可以是实数也可以有离散变量。

  • 只有两个类别的分类问题经常被称作两类问题或者二元分类问题。

  • 具有多于两类的问题经常被称作多分类问题

  • 样本属于多个类别的问题被称作多标签分类问题。


分类模型经常为输入样本预测得到与每一类别对应的像概率一样的连续值。这些概率可以被解释为样本属于每个类别的似然度或者置信度。预测到的概率可以通过选择概率最高的来别转换成类别标签。


例如,某封邮件可能以 0.1 的概率被分为「垃圾邮件」,以 0.9 的概率被分为「非垃圾邮件」。因为非垃圾邮件的标签的概率最大,所以我们可以将概率转换成「非垃圾邮件」的标签。


有很多用来衡量分类预测模型的性能的指标,但是分类准确率可能是最常用的一个。


分类准确率就是被正确分类的样本在所有预测结果中所占的百分比。


例如,如果一个分类预测模型做了 5 个预测,其中有 3 个是正确的,2 个这是错误的,那么这个模型的准确率就是 60%:


  1. accuracy = correct predictions / total predictions * 100

  2. accuracy = 3 / 5 * 100

  3. accuracy = 60%


能够学习分类模型的算法就叫做分类算法。


回归预测模型


回归预测建模是逼近一个从输入变量(X)到连续的输出变量(y)的函数映射。


连续输出变量是一个实数,例如一个整数或者浮点数。这些变量通常是数量或者尺寸大小等等。


例如,一座房子可能被预测到以 xx 美元出售,也许会在 $100,000 t 到$200,000 的范围内。


  • 回归问题需要预测一个数量

  • 回归的输入变量可以是连续的也可以是离散的

  • 有多个输入变量的通常被称作多变量回归

  • 输入变量是按照时间顺序的回归称为时间序列预测问题


因为回归预测问题预测的是一个数量,所以模型的性能可以用预测结果中的错误来评价。


有很多评价回归预测模型的方式,但是最常用的一个可能是计算误差值的均方根,即 RMSE。


例如,如果回归预测模型做出了两个预测结果,一个是 1.5,对应的期望结果是 1.0;另一个是 3.3 对应的期望结果是 3.0. 那么,这两个回归预测的 RMSE 如下:


  1. RMSE = sqrt(average(error^2))

  2. RMSE = sqrt(((1.0 - 1.5)^2 + (3.0 - 3.3)^2) / 2)

  3. RMSE = sqrt((0.25 + 0.09) / 2)

  4. RMSE = sqrt(0.17)

  5. RMSE = 0.412


使用 RMSE 的好处就是错误评分的单位与预测结果是一样的。


一个能够学习回归预测模型的算法称作回归算法。


有些算法的名字也有「regression,回归」一词,例如线性回归和 logistics 回归,这种情况有时候会让人迷惑因为线性回归确实是一个回归问题,但是 logistics 回归却是一个分类问题。


分类 vs 回归


分类预测建模问题与回归预测建模问题是不一样的。


  • 分类是预测一个离散标签的任务

  • 回归是预测一个连续数量的任务


分类和回归也有一些相同的地方:


  • 分类算法可能预测到一个连续的值,但是这些连续值对应的是一个类别的概率的形式。

  • 回归算法可以预测离散值,但是以整型量的形式预测离散值的。


有些算法既可以用来分类,也可以稍作修改就用来做回归问题,例如决策树和人工神经网络。但是一些算法就不行了——或者说是不太容易用于这两种类型的问题,例如线性回归是用来做回归预测建模的,logistics 回归是用来做分类预测建模的。


重要的是,我们评价分类模型和预测模型的方式是不一样的,例如:


  • 分类预测可以使用准确率来评价,而回归问题则不能。

  • 回归预测可以使用均方根误差来评价,但是分类问题则不能。


分类问题和回归问题之间的转换


在一些情况中是可以将回归问题转换成分类问题的。例如,被预测的数量是可以被转换成离散数值的范围的。


例如,在$0 到$100 之间的金额可以被分为两个区间:


  • class 0:$0 到$49

  • class 1: $50 到$100


这通常被称作离散化,结果中的输出变量是一个分类,分类的标签是有顺序的(称为叙序数)。


在一些情况中,分类是可以转换成回归问题的。例如,一个标签可以被转换成一个连续的范围。


一些算法早已通过为每一个类别预测一个概率,这个概率反过来又可以被扩展到一个特定的数值范围:


  1. quantity = min + probability * range


与此对应,一个类别值也可以被序数化,并且映射到一个连续的范围中:


  • $0 到$49 是类别 1

  • $0 到 $49 是类别 2


如果分类问题中的类别标签没有自然顺序的关系,那么从分类问题到回归问题的转换也许会导致奇诡的结果或者很差的性能,因为模型可能学到一个并不存在于从输入到连续输出之间的映射函数。


进一步阅读


如果读者想更深入地了解,这一部分的内容包含了更多的关于这个话题的资源。


  • 预测建模简介(https://machinelearningmastery.com/gentle-introduction-to-predictive-modeling/)

  • 机器学习算法是如何运行的(https://machinelearningmastery.com/how-machine-learning-algorithms-work/)


总结


在这个教程中,你会发现分类问题和回归问题之间的区别。


尤其是,学到了以下内容:


  • 预测建模是关于学习从输入到输出的函数映射的问题,这个映射称作函数逼近。

  • 分类是给一个样本预测离散型类别标签的问题。

  • 回归是给一个样本预测连续输出量的问题。 


原文链接:https://machinelearningmastery.com/classification-versus-regression-in-machine-learning/



本文为机器之心编译,转载请联系本公众号获得授权。

✄------------------------------------------------

加入机器之心(全职记者/实习生):hr@jiqizhixin.com

投稿或寻求报道:content@jiqizhixin.com

广告&商务合作:bd@jiqizhixin.com

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存