如何在 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?