嗨!请问回归中的决策树有多好?
我在我的数据上使用了决策树回归和其他回归模型(SVR, LR, ANN, GBT, RFR等),前者的表现比所有模型都好。
我还拿了一组新的数据进行测试,决策树的表现仍然更好。
但我读到决策树有过拟合问题,我能保持我的结果是一个好的还是问题真的可能是过拟合?
谢谢你!
我还拿了一组新的数据进行测试,决策树的表现仍然更好。
但我读到决策树有过拟合问题,我能保持我的结果是一个好的还是问题真的可能是过拟合?
谢谢你!
<?xml version="1.0" encoding="UTF-8"?> <过程version = " 9.10.001”>
> <上下文
<输入/ >
<输出/ >
<宏/ >
> < /上下文
<过程扩展= " true " >
< /操作符>
< /操作符>
<列出关键= " filters_list " >
< / >列表
< /操作符>
<列出关键= " filters_list " >
< / >列表
< /操作符>
<列出关键= " set_additional_roles " / >
< /操作符>
<列出关键= " set_additional_roles " / >
< /操作符>
<过程扩展= " true " >
< /操作符>
> < /过程
<过程扩展= " true " >
<列出关键= " application_parameters " / >
< /操作符>
< /操作符>
> < /过程
< /操作符>
<列出关键= " application_parameters " / >
< /操作符>
< / >列表
< /操作符>
<列出关键= " function_descriptions " >
< / >列表
< /操作符>
> < /过程
< /操作符>
> < /过程
0
最好的答案
-
BalazsBarany 管理员,版主,员工,RapidMiner认证分析师,RapidMiner认证专家职位:930
独角兽
嗨!
我无法测试你的进程,因为它引用了一个本地数据集。
但是这个设置看起来不错。你正在做一个分割验证;如果数据大小不是太大,您可以将其更改为交叉验证。这将在您放入验证的*所有*示例上测试多个模型。
使用交叉验证操作符,如果从中获取测试集输出,则过程会更简单。这些结果为验证过程中的预测值。
决策树容易过度拟合。预修剪和(后)修剪是为了平衡这个问题,他们往往工作良好。如果您正在进行干净的验证,那么您将获得对模型质量的公平估计。通过比较具有不同参数的模型,您将能够找到一些获得良好验证结果且看起来不太复杂的模型。(只有非常复杂的决策树,对于传入的样本集中非常小的组具有叶子,才会过度拟合。“非常复杂”当然很难在没有经验的情况下判断。)
我总是在决策树上使用优化参数,以便为平衡模型找到最佳参数(不要太简单或太复杂)。社区样本存储库中有一个示例构建块:社区构建块/优化决策树,可以用作模板。
除了决策树,你可能还想尝试随机森林。它的速度较慢,模型也复杂得多,但如果决策树对你很有效,那么随机森林可能会改善你的结果,或者使模型更健壮。
问候,
Balazs
0 -
Jerwuney 成员职位:19
因素二世
嗨@BalazsBarany
谢谢你!
我的数据集接近5000,但在运行期间,我必须使用Filter Examples操作符将其拆分为一些类别。
对于决策树,我前后都进行了修剪,以确保不会出现过拟合的问题。此外,RMSE比某些模型更大,但它们并没有表现得更好。我使用的最大树深度为10。
附件是我正在使用的数据。你必须这样过滤:
物料类型1,间隔1
材料类型2,间隔1
材料类型1,间隔2
材料类型1,间隔3
'train': 0表示训练和测试,'1'表示验证
对于随机森林和决策树,你的意思是我把它们组合成一个整体吗?
我希望这会有所帮助。谢谢你!0 -
BalazsBarany 管理员,版主,员工,RapidMiner认证分析师,RapidMiner认证专家职位:930
独角兽
嗨!
您可以简单地将决策树替换为随机森林操作符,并检查结果是否变得更好。如果不是,那么你只需回到决策树。
问候,
Balazs
0 -
Jerwuney 成员职位:19
因素二世
嗨@BalazsBarany
是的,我做到了。决策树仍然表现得更好。我使用了一个新的数据集来测试它,决策树仍然是最受欢迎的。
我担心的只是过度拟合,尽管我采取了必要的预防措施,但我没有太多的经验。所以我想听听更有经验的用户的意见。
问候,
Jerwuney1