【问题标题】:Get the default number of elements per leaf in a Decision Tree of Spark MLlib获取 Spark MLlib 决策树中每个叶子的默认元素数
【发布时间】:2020-01-02 02:11:48
【问题描述】:

如果可能的话,我想获取 Spark MLlib 决策树中每个叶子的默认元素数。

我一直在这里阅读https://spark.apache.org/docs/latest/mllib-decision-tree.html 并试图在https://github.com/apache/spark/blob/master/mllib/src/main/scala/org/apache/spark/mllib/tree/model/Node.scala 中找到一些东西,但我找不到我需要的信息。

我知道minInstancesPerNode Strategy 参数,但这不是我想要的。

有什么想法吗?谢谢!

【问题讨论】:

  • 能否解释一下“每片叶子的默认元素数”到底是什么意思?您是在说经过训练/拟合的模型吗?
  • 我的意思是如果决策树的每个叶子中都有默认的实例数,因为我知道有一个最小值,但是平均实例数呢?或者是否有更多关于每片叶子的信息不仅仅是minInstancesPerNode。我希望这次能清楚,如果没有,请告诉我

标签: scala apache-spark apache-spark-mllib decision-tree


【解决方案1】:

Spark DecisionTreeClassifier 有几个参数,您可以在训练时间之前使用 setZYZ 方法设置这些参数。许多方法将帮助您规范树并避免过度拟合。例如

  • setMinInstancesPerNode:节点/叶子中必须存在的最小训练记录数才能有效。节点/叶子少于 minInstances 它将被汇总到父节点中
  • setMaxDepth:树停止生长的最大深度。
  • setMinInfoGain: 发生分裂的最小信息增益

一旦您训练 (.fit) 一个 Spark 决策树,然后预测 (.transform),您的 DataFrame 中将有 3 个额外的列(用于分类):

  • predictionCol: "预测标签"
  • rawPredictionCol: "长度为 # 个类别的向量,在树节点上具有训练实例标签的计数,从而进行预测"
  • probabilityCol: "长度为 # 类的向量等于 rawPrediction 归一化为多项分布"

rawPredictionCol 列可能就是您要查找的内容。它告诉您在训练时构建树后,每个类有多少实例最终出现在叶子中。预测标签是计数最高的类。 probabilityCol(源自rawPredictionCol)捕获了预测中的“信心”。见:https://spark.apache.org/docs/latest/ml-classification-regression.html#output-columns

【讨论】:

    猜你喜欢
    • 2018-09-22
    • 2016-10-07
    • 2015-10-25
    • 2021-12-25
    • 2016-10-27
    • 2013-01-19
    • 2016-11-10
    • 2018-01-06
    • 1970-01-01
    相关资源
    最近更新 更多