Python入门——决策树

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

运行之后的结果是:
在这里插入图片描述
这就是热狗、小面包、番茄酱、芥末酱和洋葱的所有组合了。
这样看来,决策树是不是还挺有意思呢。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值