今天按照《機器學習實戰》學習 k-鄰近算法,輸入KNN.classify0([0,0],group,labels,3)的時候總是報如下的錯誤:
Traceback (most recent call last):
File "<pyshell#75>", line 1, in <module>
KNN.classify0([0,0],group,labels,3)
File "KNN.py", line 16, in classify0
diffMat = tile(inX, (dataSetSize,1)) - dataSet
ValueError: operands could not be broadcast together with shapes (4,2) (4)
查看 group類型是array([[1.0, 1.1], [1.0, 1, 0], [0, 0], [0, 0.1]], dtype=object),也和書上顯示的不太一樣。在百度上找了很久也沒有發現有解決方法,仔細想想應該還是輸入手誤造成!所以又仔細檢查了一下代碼,最終發現是輸入的時候不小心把 . 打成了 , 造成的。
group = array([[1.0,1.1],[1.0,1,0],[0,0],[0,0.1]])
改正後代碼正常!