这个问题是我接着上次的问题(xgboost可以做回归预测吗?)问的。
在之前那个问题的回答中,xgboost比线性回归好非常非常多,而且xgboost也不需要做什么特征工程。既然xgboost那么好,线性回归还有存在的价值吗?
再次谢谢!
9个回答
1)线性回归模型的解释性是决策树、随机森林、xgboost无法比拟的,也无法取代。
2)线性回归可以建立线性模型,而xgboost是不可以的。举个例子,即使是简单的y=x+1的线性关系,xgboost也无法做到。
3)线性模型计算简单,适用于快速部署。
更新一下,回复一下ladychili的“xgboost可以做linear model的…… booster = 'gblinear'了解一下”
我觉得如果booster='gblinear'的话,本质上就不是xgboost,其实还是线性回归,只是用sgd的方式去求解了。
也可以参考一下,xgb中booster='gblinear'是什么意思
1.决策树/森林回归是把数据空间非线性地分成N份(N为叶节点数),相当于做N 聚类。然后再每个叶节点上求平均,其实是一种条件期望(conditional mean),$\hat{y}=E(y|c)$,$c$是聚类标签,可以看做是内插(interpolation)。所以预测点周围需要被训练点包围,这样才会有好的效果。
2.线性模型回归是用线/平面去拟合所有训练数据。当引入$x^2$等高维变量后,在原有$x$空间是非线性曲线/曲面。线性模型回归可以作内插(interpolation,预测点曾经见过),也可以做外插(extrapolation,预测点从没见过,比如$y=x+1$)。
3..决策树优点:决策树用垂直线段去拟合曲线,不用显示的写出曲线的表达式。而线性模型会尝试写出曲线的表达式。所以线性模型更难去拟合复杂的曲线。
4..决策树缺点:决策树是基于数据,而线性模型是基于模型。决策树需要大量数据去尽量覆盖所有可能的输入,适合于大数据。所谓的“大”是指训练样本的覆盖面要大。线性模型可以处理训练样本小的情况。
5..决策树和线性模型的组合。在每个叶节点上,单纯的决策树回归是用一个点代表所有值。此时可以再用线性模型,用一条线去拟合子空间的数据。
6.线性模型默认全部数据有相同的分布,而决策树可以处理mixture这样混合了不同分布的数据。所以要对复杂的混合数据聚类,提纯后再对相对单纯的一类数据用线性模型。
------------------------------------------
两者更深层的区别是parametric和nonparametric:用固定/非固定的参数去学习数据。
SofaSofa数据科学社区DS面试题库 DS面经No Free Lunch Theorem告诉我们总会有一些情况,线性模型是比xgboost好的。所以不要过分迷信xgboost。
感谢楼上各位的回答!我发现的真相就是就算你懂xgboost,面试官还是比较爱问线性回归和逻辑回归。
既然面试官爱问线性模型,估计是线性模型更常用到吧
扎心了
1. xgboost的计算代价还是挺高的,毕竟模型复杂
2. 模型复杂,在业界中维护的代价肯定也更高了
3. 另外还有xgb对于extrapolation算是继承了tree-model的缺点(不知大什么是extrapolation的可以看机器学习里extrapolation是什么意思?)
SofaSofa数据科学社区DS面试题库 DS面经如果xgboost和线性回归的表现差不多,或者好不了多少的时候,我都是无脑选择线性回归,一是简单,不容易过拟合,二是解释性强
SofaSofa数据科学社区DS面试题库 DS面经