本文转载自:https://cloud.tencent.com/developer/news/60043 里的这篇文章,觉得讲的不错
回归问题是指要预测的是一个连续值,例如预测房价或股价;分类问题则是预测样本的类别,例如区分图片是猫还是狗、明天股价会上升还是下降,等等。
根据经验,回归模型确实更难调优,有时,将样本真值划分为一系列的区间,然后转变为分类问题,可以取得更好的结果。是什么造成了这种现象呢?
从网上的讨论来看,可以归纳为以下几个原因:
一、回归问题的损失函数更难选取。回归问题的背后是贝叶斯统计学,例如,线性回归的假设是真值服从高斯分布,而现实生活中的问题往往并不满足高斯分布,因此不能简单的使用线性回归中的平方损失来衡量误差。由于很多人在做回归问题时,不加考虑的使用了平方损失,导致最终结果不令人满意。
二、分类问题对误差的容忍更大。例如,逻辑回归输出0.6和1.0是一样的,最后都会被转化为同一个类别。而回归则不是,0.1的误差就是0.1。因此,回归问题对结果的要求更严格,同时,这也导致回归问题对离群点更为敏感。
三、从优化的角度讲,由于回归问题对离群点敏感,这就导致在梯度下降(或反向传播)时容易发生梯度消失或梯度爆炸的问题。同时,由于回归问题对误差要求比较高,过多的正则会导致结果变差,因此一些在分类问题里面常用的正则化方法无法简单的套用在回归问题中。这使得回归问题调参变得困难。
四、从样本的角度看,由于回归问题对误差的要求比较高,因此对样本量的需求也更大。例如,对于两个样本,其真值分别为0.6和1.0,因此它们是属于同一类的,对于分类问题,学习器只要学习到它们属于同一类即可,因此不要求那么多的数据,而对于回归问题,有时0.1的误差都是很大的,因此对样本量的需求也会更大。
最后,通过划分区间将回归问题转变为分类问题,是一个常见的做法,很多时候也能取得比用回归算法更好的效果。但是,也有人指出,这种做法是不合适的,因为这是将一步解决的问题划分成了两步:划分区间和分类。而且,划分区间以后,也不能简单的使用分类算法,因为这等于忽略了区间之间的大小关系,而应该使用序数回归(ordinal regression)的方法。
综上可见,回归问题确实比分类问题要困难一些。