《机器学习实战》第7章的一处代码错误

Posted 青冥绿水

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《机器学习实战》第7章的一处代码错误相关的知识,希望对你有一定的参考价值。

---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-69-fab03f1fce4e> in <module>()
----> 1 adaboost.buildStump(dataArr, labelArr, D)

/home/cavin/Documents/BookData/machinelearninginaction/Ch07/adaboost.py in buildStump(dataArr, classLabels, D)
     44                 predictedVals = stumpClassify(dataMatrix, i, threshVal, inequal)
     45                 errArr = np.mat(np.ones((m, 1)))
---> 46                 errArr[predictedVals == labelMat] = 0
     47                 weightedError = D.T * errArr
     48                 print("""split: dim %d, thresh %.2f, thresh inequal: 

IndexError: index 1 is out of bounds for axis 1 with size 1

P120 程序清单7-1 单层决策树生成函数

def buildStump(dataArr, classLabels, D):
    ...
    errArr[predictedVals == labelMat] = 0

在3.6版本的anaconda下执行会提示错误:

解决方法:

errArr[predictedVals == labelMat.T] = 0

也就是把labelMat转置,出现这个错误原因是predictedValslabelMat的shape不同导致的

以上是关于《机器学习实战》第7章的一处代码错误的主要内容,如果未能解决你的问题,请参考以下文章

R语言实战:机器学习与数据分析源代码5

机器学习实战三(Naive Bayes)

机器学习实验室的一点年度小结

《机器学习实战第7章:利用AdaBoost元算法提高分类性能》

机器学习实战,中英文版的书籍,分享研一买的一本书

机器学习实战,中英文版的书籍,分享研一买的一本书