Python入门——决策树

决策树(Decision Tree)是一种树形结构,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一种类别。
数学中的排列大家应该都学过,结果跟元素的顺序有关,如果建立一个列表,列出从1到20选择3个数的所有排列,下面这两项是不同的:
5,8,10
8,5,10
举个例子,假设学校要开一个热狗店,你想做个海报,用数字显示如何订购热狗、小面包、番茄酱、芥末酱和洋葱的所有可能的组合。所以我们需要得出总共有多少种可能的组合。
这个问题的一个解决方法就是使用决策树。如下图:
Python入门——决策树_第1张图片
每个决策点都有两种选择,是或者否。树的每一条路径分别描述了热狗各部分不同的组合。加粗显示的那条路径的选择:热狗+芥末酱+番茄酱。
现使用嵌套循环来列出所有的组合,也就是这颗决策树的所有路径。
这里需要有5个决策点,也就是决策树有5层,对应程序需要有5个嵌套循环(图上只显示了决策树的前4层)。

print("\t\t热狗 \t小面包 \t芥末酱 \t番茄酱 \t洋葱")
count = 1
for dog in [0,1]:
    for bun in [0,1]:
        for ketchup in [0,1]:
            for mustard in [0,1]:
                for onion in [0,1]:
                    print("#",count,"\t",dog,"\t\t",bun,"\t\t",ketchup,"\t\t",\
                          mustard,"\t\t",onion)
                    count += 1

运行之后的结果是:
Python入门——决策树_第2张图片
这就是热狗、小面包、番茄酱、芥末酱和洋葱的所有组合了。
这样看来,决策树是不是还挺有意思呢。

你可能感兴趣的:(python)