【问题标题】:How do I interpret this output from sklearn.tree.export_graphviz?如何解释 sklearn.tree.export_graphviz 的输出?
【发布时间】:2018-09-16 11:42:32
【问题描述】:

我正在分析成绩数据。作为一种查看数据的新方法,我第一次使用决策树。我相信我有正确的代码,现在我正在尝试解释它。特征是一系列测验的成绩,分类是学生获得的最终成绩。我有几个问题:

  1. 如果我的理解是正确的,每个节点都有一个测试和一个左分支,表示测试为真,另一个为假。当这棵树似乎已经问了足够多的问题时,它就会说出“类”是什么。如果是这样的话,为什么在叶子之前的盒子上有一个 class=?我还以为只是叶子有class=

  2. 如何“调整”整个树?好像箱子太多了。这是“过度拟合”的一个例子吗?我怎样才能更好地调整它?

  3. 例如,FINAL_GRADE_PA01 的使用似乎是基于数据的排序任意的。这是真的还是分析实际上得出的结论是该特征是最好的鉴别器?

【问题讨论】:

  • 您好。社区在帖子中讨论了礼貌和细节,并决定我们宁愿追求简洁和技术标准的写作。因此,请不要在帖子中添加感谢、问候、问候等内容。 Reference is here 在元上。
  • 干得好@halfer :)

标签: machine-learning scikit-learn decision-tree


【解决方案1】:

如果我没记错的话,那些class 值表示如果模型停止在该节点上分支,它会预测什么。它仍然存储这些值,但如果该节点有分支,它就不会使用它们。

关于节点数,见docs

控制大小的参数的默认值 树(例如 max_depth、min_samples_leaf 等)导致完全生长和 在某些数据集上可能非常大的未修剪树。 为了减少内存消耗,树的复杂性和大小 应该通过设置这些参数值来控制。

您可以使用几个参数来降低模型的复杂性。以下两个参数只是一个例子:

ma​​x_leaf_nodes:int 或 None,可选(默认=None)

以最佳优先方式使用 max_leaf_nodes 种植一棵树。最佳节点定义为杂质的相对减少。如果没有,那么无限 叶节点数。

min_impurity_decrease:浮动,可选(默认=0。)

如果该分裂导致杂质减少大于或等于该值,则该节点将被分裂。

【讨论】:

    猜你喜欢
    • 2014-08-09
    • 2021-06-01
    • 2014-02-03
    • 2018-09-09
    • 1970-01-01
    • 2015-11-11
    • 2016-08-18
    • 2011-09-14
    • 1970-01-01
    相关资源
    最近更新 更多