机器学习实战之决策树

在Python3环境下使用Matplotlib绘制决策树和pickle存储时,遇到TypeError、RecursionError和AttributeError等错误。解决方案包括将dict.keys()转换为list,调整递归深度,确保函数返回值,以及正确处理文件读写模式和数据格式。
摘要由CSDN通过智能技术生成

问题1
来源:在python中使用Matplotlib注解绘制树形图
描述:getNumLeafs(myTree)和getTreeDepth(muTree)中,firstStr = myTree.keys()[0]等带有myTree.keys()的地方都编译通不过
报错:TypeError: 'dict_keys' object does not support indexing
解决办法:将函数中的firstStr = myTree.keys()[0]改成firstStr = list(myTree.keys())[0]
原因:书中所用代码为python2,而我使用的是python3,python3中dict.keys有改动,返回的是dict_keys对象,支持iterable,但不支持indexable,将其明确的转化成list即可运行

问题2
来源:在python中使用Matplotlib注解绘制树形图
描述:getTreeDepth(muTree)中,将firstStr = myTree.keys()[0]改成firstStr = list(myTree.keys())[0]后还是编译不过
报错:[Previous line repeated 994 more times]
       RecursionError: maximum recursion depth exceeded while calling a Python object
解决办法:插入代码 
        import sys   
        sys.setrecursionlimit(10000) 
      将递归深度调整到一万层
原因:循环代码执行到994 次的时候出现‘RecursionError: max

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值