【发布时间】:2015-02-02 00:39:59
【问题描述】:
我们正在使用 MLlib 为决策树运行 Spark 1.0 或 1.1。
当我使用示例数据运行示例 SCALA 代码时,它可以正常工作,但我无法从结果中找到特征重要性。
有人知道如何获取这些值吗?
【问题讨论】:
-
请发布您的尝试和结果。我们不是心灵感应。
标签: scala apache-spark decision-tree apache-spark-mllib
我们正在使用 MLlib 为决策树运行 Spark 1.0 或 1.1。
当我使用示例数据运行示例 SCALA 代码时,它可以正常工作,但我无法从结果中找到特征重要性。
有人知道如何获取这些值吗?
【问题讨论】:
标签: scala apache-spark decision-tree apache-spark-mllib
在 Spark 2+ 中,您可以执行以下操作:
val vectorAssembler = new VectorAssembler().setInputCols(featureArray)
val decisionTreeModel = decisionTree.fit(trainingDataset)
val featureImportances = decisionTreeModel.featureImportances // Sparse or Dense Vector
featureArray.zip(featureImportances.toArray).sortBy(_._2).reverse
【讨论】:
当你最后训练 DecisionTreeModel 时,你就有了这个类
class DecisionTreeModel(val topNode: Node, val algo: Algo) {
...
}
你可以从顶部开始遍历节点,你可以从中得到你需要的一切(predict + InformationGainStats)
class Node (
val id: Int,
val predict: Double,
val isLeaf: Boolean,
val split: Option[Split],
var leftNode: Option[Node],
var rightNode: Option[Node],
val stats: Option[InformationGainStats])
【讨论】: