如何在 Apache Spark (PySpark 1.4.1) 中可视化/绘制决策树?

How do I visualise / plot a decision tree in Apache Spark (PySpark 1.4.1)?

我正在使用 Apache Spark Mllib 1.4.1(PySpark,Spark 的 python 实现)根据我拥有的 LabeledPoint 数据生成决策树。树生成正确,我可以将它打印到终端(提取规则,因为这个用户称之为 How to extract rules from decision tree spark MLlib)使用:

model = DecisionTree.trainClassifier( ... )
print(model.toDebugString()

但我想做的是可视化或绘制决策树,而不是将其打印到终端。有什么方法可以在 PySpark 中绘制决策树,或者我可以保存决策树数据并使用 R 绘制它?谢谢!

有这个项目Decision-Tree-Visualization-Spark 用于可视化决策树模型

它有两个步骤

  • 将 Spark 决策树输出解析为 JSON 格式。
  • 使用 JSON 文件作为 D3.js 可视化的输入。

对于解析器检查 Dt.py

函数 def tree_json(tree) 的输入是您的模型 toDebugString()

来自question

的回答

虽然有点老了post,只是提供我的答案,让以后来到这里post的其他人都能受益。

或者,您可以使用 "graphviz" python 在 PySpark 中使用的包。它将决策树模型打印成整齐的树结构,而不是通常的 if 循环结构。

可以在这个 link 中找到更多详细信息:https://pypi.python.org/pypi/graphviz

我们刚刚发布了 dtreeviz 1.1 版本,支持来自 Spark 的决策树。你可以可视化很多东西,比如整棵树,只是预测路径,叶信息,比如样本数或标准。

您可以在这个 notebook

中查看许多可视化效果