scala - 获取 Spark MLlib 决策树中每个叶子的默认元素数
问题描述
如果可能的话,我想在 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 参数,但不是我想要的。
有任何想法吗?谢谢!
解决方案
SparkDecisionTreeClassifier
有几个参数,您可以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
推荐阅读
- reactjs - 如何使用函数为 React-Router 制作地图?
- ios - 如何在 SwiftUI 中将项目与 VStack 内的顶部对齐?
- node.js - 使用 sequelize 在 nodejs 和 Postgres 中插入错误
- android - 在android studio中运行我的第一个flutter应用程序时出现问题
- python - Python 是否有 Parquet 等价物?
- android - 如何在不复制和粘贴其父 onMeasure 实现的情况下修改自定义 TextView WRAP_CONTENT 高度?
- javascript - 如何在 React js 中读取和更新 csv 文件
- flutter - 向 Flutter 中的默认 User 类添加新属性
- python - 蟒龟在移动时留下点
- jenkins - 如何在 jenkins 文件中获取 hg 分支名称