在学习《Machine Learning in Active》的第九章时,由于自己使用的是python3所以在测试代码时出现了不少错误,下面就做一下整合,并给出解决方法
1.NameError: name 'errType' is not defined
最开始提示NameError: name 'errType' is not defined错误,所以我就把函数createTree()和chooseBestSplit()的声明改了一下。
原来的是:
def createTree(dataSet, leafType = regLeaf, errType = regErr, ops = (1, 4)):
和
def chooseBestSplit(dataSet, leafType = regLeaf, errType = regErr, ops = (1, 4)):
我的改法:
def createTree(dataSet, ops = (1, 4)):
和
def createTree(dataSet, ops = (1, 4)):
但是要记住要把两个函数中出现的所有leafType换成regLeaf,所有errType换成regErr,一定要注意,改了之后还要注意createTree()函数是一个迭代函数,函数里面的迭代语句里的四个参数也要改成2个,还有就是之后的算法中会修改leafType和errType的值,因为我们把它去掉了,所以要修改算法中的每一个leafType和errType
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆</