pandas 如何在Python中创建一个类似决策树的图?

cl25kdpy  于 2023-05-05  发布在  Python
关注(0)|答案(1)|浏览(146)

我有一个Pandas dataframe,其中包含一些列,例如:

product      color      type
A            blue       2
A            red        3
A            red        1
B            red        1
B            red        2
B            green      5
C            yellow     1
C            yellow     2
C            blue       3
.
.
.

我想创建一个看起来像决策树的方案,用我们看到的列和值显示所有可能性。就像这样:

A                    B                   C
  blue  red            red    green       yellow  blue
  1  2   3            1  2      5         1   2     3

但是如果用箭头连接这些值,A将与蓝色和红色相连,这将与1,2和3相连,依此类推。就像我们可视化决策树的方式一样,但我不想创建一个统计模型,只显示可用的可能性,以及每种可能性的观察数量。
这可能吗?我搜索了所有类型的术语,但找不到任何接近的东西。
我想运行一个机器学习模型,然后绘图,但我不认为这会得到我想要的,因为它会通过信息增益来探索事物,我想展示一切。

pxy2qtax

pxy2qtax1#

你可以使用networkx来构建一个有向图:

from itertools import pairwise
import networkx as nx

G = nx.from_edgelist((edge for row in df.to_numpy()
                      for edge in pairwise(row)),
                     create_using=nx.DiGraph
                    )

图形(graphviz渲染后):

用于绘图的代码(导出图像并以jupyter输出),请参阅here

def nxplot(G):
    from networkx.drawing.nx_agraph import to_agraph
    A = to_agraph(G)
    A.layout('dot')
    A.draw('/tmp/graph.png')
    from IPython.display import Image
    return Image(filename='/tmp/graph.png')

nxplot(G)

相关问题