如何在决策树中指定拆分?

时间:2017-10-05 06:30:17

标签: scikit-learn decision-tree data-science

我正在尝试使用scikit-learn提供的功能训练决策树分类器以评估棒球运动员。但是,我想提前“预先指定”或“强制”一些分裂,基于我所知道的专家思考的方式(这些都需要合并)。例如,我想基于击球平均值>强制进行分组。 .300。

一个相关的问题是 - 我可以“预先加载”先前训练过的决策树模型,并仅在后续培训中“更新”它吗?或者,每次运行时,decisio树分类器是否需要重新学习所有规则?我在这里尝试的类比是转移学习,但应用决策树。

2 个答案:

答案 0 :(得分:1)

我预先指定拆分的方法是创建多个树。将玩家分成两组,平均分组为> 0.3和< = 0.3,然后在每个组上创建并测试树。在得分过程中,一个简单的if-then-else可以将玩家发送到tree1或tree2。

这种方式的优点是你的代码非常明确。这也是测试这些专家规则的好方法 - 构建一个没有规则的树,然后构建2棵树并进行比较。

缺点是如果你有很多规则,这对于许多树来说变得相当繁琐,许多if-then-else维护,并且可能是小样本训练每棵树。但也许所有的专家规则都不是最优的。

答案 1 :(得分:0)

您可以查看模型的this example to find out the decision tree structure。虽然分裂会有点困难。

您可以查看this answer which specifies a method以在决策树中添加自定义拆分器。

另外,我无法找到预先加载的方法,然后更改决策树。您必须找到其他一些解决方法。