《機器學習實戰》第7章的一處代碼錯誤
阿新 • • 發佈:2018-03-20
traceback com post cond 解決 elm back document image
--------------------------------------------------------------------------- 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轉置,出現這個錯誤原因是predictedVals
和labelMat
的shape不同導致的
《機器學習實戰》第7章的一處代碼錯誤