《机器学习实战》第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不同导致的

posted @   东围居士  阅读(577)  评论(2编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示