楼主: yaoqsm321
57208 80

[问答] 随机森林过拟合问题,在训练集上表现很好,在测试集上的表现很差 [推广有奖]

41
jameschin007 发表于 2016-12-12 17:43:45
yaoqsm321 发表于 2016-12-12 17:15
我总感觉是数据本身质量不行,自变量对因变量的相关性太小,可能是这个原因导致的判断不准确,感觉决策树 ...
今天下午,基本都在看你这个数据。
基本判断是数据不平衡问题。
https://www.analyticsvidhya.com/ ... ification-problems/
http://lamda.nju.edu.cn/liyf/dm14/111220005.pdf   这篇是中文的。
建议看这几篇文章。
用rpart,效果会好一点。
推荐方法是用rose 包, 进行上采样,后者下采样。
另外,主要是精度指标。因为用mse和accurate,都无效。caret包,可以自己定义精度指标。今天太晚了,我明天可以查查。

42
yaoqsm321 发表于 2016-12-12 17:48:50
jameschin007 发表于 2016-12-12 17:43
今天下午,基本都在看你这个数据。
基本判断是数据不平衡问题。
https://www.analyticsvidhya.com/blo ...
真不知道该怎么感谢你,我现在给老板说的方案是用rpart做决策树,然后再用fisher判别来做,两个结合,可能会好一点。下边这个是用rpart做的,判断为1的准确率很高,但是数量却很少,就准备用fisher把判断为0的再去做一次分类,然后还能筛选出一部分好的应该。

result2    0    1
      0  215 1031
      1   14  299

43
旧时光是个美人 发表于 2016-12-13 11:52:38
yaoqsm321 发表于 2016-12-12 17:15
我总感觉是数据本身质量不行,自变量对因变量的相关性太小,可能是这个原因导致的判断不准确,感觉决策树 ...
既然你都“感觉”了,那我也不想再多说了。
只提一句,预测相关的话,不管是分类还是回归,如果缺少和其他方法比较的文章都是不完整的,反正我审稿时基本是直接毙掉的。

44
yaoqsm321 发表于 2016-12-13 14:30:10
旧时光是个美人 发表于 2016-12-13 11:52
既然你都“感觉”了,那我也不想再多说了。
只提一句,预测相关的话,不管是分类还是回归,如果缺少和其 ...
哎,就算是数据真的不行,我也要做,没办法,做不出来就没工作了,不知道您有什么好的建议吗,我快急死了

45
jameschin007 发表于 2016-12-13 16:37:53
yaoqsm321 发表于 2016-12-12 17:48
真不知道该怎么感谢你,我现在给老板说的方案是用rpart做决策树,然后再用fisher判别来做,两个结合,可能 ...
SVM 有支持class weight的参数

md_svm = svm(V1~.,data = new_train,type="C-classification",kernel="radial",class.weights= c("0" = 5, "1" = 1))
> yyy= predict(md_svm,new_test)
> confusionMatrix(yyy,new_test$V1)

          Reference
Prediction   0   1
         0 130 525
         1  72 807

通过简单调节,我觉得是不错的结果。 我只选了 15,31,38 三个变量,根据变量的重要程度

46
yaoqsm321 发表于 2016-12-13 16:54:14
jameschin007 发表于 2016-12-13 16:37
SVM 有支持class weight的参数

md_svm = svm(V1~.,data = new_train,type="C-classification",kernel= ...
其实我也觉得这个结果挺好的,但好像跟决策树的结果差不多啊,SVM也没有高级到哪去。,那随机森林的问题还是没有解决啊,虽说不能再一棵树上吊死,但是决策树、随机森林、SVM、判别分析都没有一个完美的解决, 难道是因为这个东西根本就没有完美解决的方法吗?

47
大一仔 发表于 2016-12-13 16:56:53
jgchen1966 发表于 2016-12-6 21:36
randomForest 、SVM、等等机器学习算法,有个很关键,但常被忽视的问题:数据必须满足“独立同分布”条件 ...
我的观点,如果数据都符合独立同分布,传统的统计模型比如判别模型就可以很好地解决这个问题,没必要上机器学习算法。机器学习算法的优势之一就是结果导向,对数据的分布没什么前提假设。如果数据真的符合独立同分布,随机森林未必比判别模型和Logit回归效果好。
推荐LZ研究下caret包,用caret包来训练随机森林效果比较好。

48
jgchen1966 发表于 2016-12-13 19:26:17
大一仔 发表于 2016-12-13 16:56
我的观点,如果数据都符合独立同分布,传统的统计模型比如判别模型就可以很好地解决这个问题,没必要上机 ...
。。。。。。。。。。。。。。。。。。。。。。。。。????????????????????????!!!!!!!!!!

49
jameschin007 发表于 2016-12-13 21:12:05
yaoqsm321 发表于 2016-12-13 16:54
其实我也觉得这个结果挺好的,但好像跟决策树的结果差不多啊,SVM也没有高级到哪去。,那随机森林的问题还 ...
对于数据不平衡问题,随机森林确实解决的不好。 其他算法,GBM,SVM都可以。
方法主要采用过采样和欠采样的方法来实现。 有个rose包。 参见我之前给你的两个链接的文章。

50
大一仔 发表于 2016-12-14 10:16:26
jgchen1966 发表于 2016-12-13 19:26
。。。。。。。。。。。。。。。。。。。。。。。。。???????????????????????? ...
随机森林的优良取决于决策树的优良和各决策树的相互独立程度,而决策树通常对于数据要求不高,见决策树的维基百科:https://zh.wikipedia.org/wiki/%E5%86%B3%E7%AD%96%E6%A0%91。决策树的缺点就是对于unbalanced数据总是偏向于较多的类别,这也是随机森林的缺点。通常通过欠抽样或过抽样的方法去改善这个缺点。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 14:15