Random Forest 过拟合有什么好办法?

  统计/机器学习 监督式学习 模型验证    浏览次数:4927        分享
0

问题:

模型是用一些用户数据,和共享单车的数据,来预测某一次共享单车骑行会不会超过3km。


数据有30万行,特征不到20个


我现在用random forest一直出现过拟合的情况,train的时候接近100%,test就70%,但是我设置数的深度和个数来调整train accuracy的时候,train accuracy降下来了,但是test没有任何提示?


想问问大家这有什么办法解决?


是需要收集更多特征吗?还是调参?



 

superives   2018-05-07 07:55



   3个回答 
0

交叉验证了解一下

SofaSofa数据科学社区DS面试题库 DS面经

陈十一   2018-05-07 10:40

试过了,没有明显的效果。我用了random search 100次加上交叉验证,结果还是差不多,我想问这种情况正常吗?就是training accuracy一直很高,虽然可以调参让它降下去,但是testing的一直升不上来? - superives   2018-05-07 11:23
0

你的test set是哪里来的?如果test set和training set不是来自于同一个总体,或者分布差距很大,的确会出现题主的情况。


SofaSofa数据科学社区DS面试题库 DS面经

Lydia   2018-05-07 12:32

test就是我从train的选出来的20%,是来自同一总体的。我想问一下是,random forest经常会出现这种情况吗?还是我调参不够好 - superives   2018-05-07 13:21
0

1.有可能问题本身就很难。你可以把骑行距离的直方图或PCA后的散点图(scatter)画出来,看3km是否是一个好的分类的划分值。比如3km是一个峰值,左右两边都集中有很多数据,这样的分类问题就很困难。如果没有特殊要求,可以考虑变为其他值,或者变成回归问题。

2.每次只Random Search一项参数,这样search的精度更高,容易找到重要的参数。

3. 试试其他方法,比如Neural Network。一般Neural Network 分类优于Ramdom Forest。

SofaSofa数据科学社区DS面试题库 DS面经

Zealing   2018-05-07 14:32

谢谢提醒,我试过了nn,调了不一样的参数后,得到的结果居然和rf也差不多,可能我要看看3km是不是个好分类器。。 - superives   2018-05-08 00:20
有时test error是有上限的,比如说强行要把一个高斯从中间分为两个高斯,可以从理论上计算出error的上限。 - Zealing   2018-05-09 02:20


  相关讨论

为什么GBDT比RF更容易overfitting?

决策树模型有什么特点以及如何防止过拟合?

线下训练集和测试集防过拟合

关于神经网络调整缓解过拟合的问题?

为什么过拟合不好?

xgboost是如何实现early stopping防止过拟合的?

关于LR过拟合的数据集问题

xgboost有正则项为什么还会过拟合呢?

L1正则化和L2正则化的区别?L1为啥具有稀疏性?

XGBoost损失函数中正则项的理解

  随便看看

K-means怎么选K?

协方差矩阵一定是满秩的吗?

对于xgboost,还有必要做很多特征工程吗?

回归中自变量和因变量的相关系数和回归系数(斜率)有什么关系?

如何理解VC dimension?