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

Posted

技术标签:

【中文标题】如何在 Apache Spark (PySpark 1.4.1) 中可视化/绘制决策树?【英文标题】:How do I visualise / plot a decision tree in Apache Spark (PySpark 1.4.1)? 【发布时间】:2015-11-20 20:46:42 【问题描述】:

我正在使用 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 来绘制它?谢谢!

【问题讨论】:

我需要做同样的事情。你设法绘制出你的 DT 吗? 【参考方案1】:

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

分两步

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

对于解析器检查Dt.py

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

question的回答

【讨论】:

【参考方案2】:

我们刚刚发布了dtreeviz 1.1 版本,支持 Spark 的决策树。您可以可视化很多东西,例如整棵树、预测路径、叶信息(例如样本数或标准)。

你可以在这个notebook查看很多可视化

【讨论】:

【参考方案3】:

虽然这是一个有点旧的帖子,但只是为了提供我的答案,以便从现在开始阅读此帖子的其他人可以受益。

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

更多细节可以在这个链接中找到:https://pypi.python.org/pypi/graphviz

【讨论】:

以上是关于如何在 Apache Spark (PySpark 1.4.1) 中可视化/绘制决策树?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Apache Spark (pyspark) 中使用自定义类?

如何有效地将 MySQL 表读入 Apache Spark/PySpark?

如何在 Pyspark 中启用 Apache Arrow

如何在 Apache livy 中提交 pyspark 作业?

Apache Spark:启动 PySpark 时出错

Apache Spark (PySpark) 在读取 CSV 时处理空值