【发布时间】:2018-04-11 09:52:48
【问题描述】:
我正在使用 scikit-learn 构建回归树,使用 tree.DecisionTreeRegression()。
我提供了 56 个数据样本,它为我构建了一个有 56 个节点的树(修剪=0)。
如何对树进行一些修剪?任何帮助表示赞赏!
【问题讨论】:
标签: python tree regression cart
我正在使用 scikit-learn 构建回归树,使用 tree.DecisionTreeRegression()。
我提供了 56 个数据样本,它为我构建了一个有 56 个节点的树(修剪=0)。
如何对树进行一些修剪?任何帮助表示赞赏!
【问题讨论】:
标签: python tree regression cart
默认情况下,sklearn 树会一直生长,直到每个叶子都是纯的(并且模型完全过拟合)。如果要微调复杂性,可以设置许多不同的参数,以不同的方式限制树的生长。列出的参数有:max_depth、min_samples_split、min_samples_leaf、min_weight_fraction_leaf、max_leaf_nodes、min_impurity_decrease
用法见the docs。
【讨论】:
你不能;使用matlab。目前正在为此苦苦挣扎。使用基于 python 的自制决策树也是一种选择。但是,不能保证它会正常工作(很多地方你可以搞砸)。如果你想要任何合理的运行时间(现在也在努力解决这个问题),你需要用 numpy 来实现。
如果您仍然有这个问题,我确实有一个使用节点知识的决策树,并且本周末正在实施修剪......
如果我让它运行得很快并且代码不是太复杂,如果你仍然感兴趣,我会在这里发布一个 GitHub,以换取我在 LinkedIn 上对 ML'ing 和 Python/Numpy 专业知识的认可。
【讨论】: