今天按照《机器学习实战》学习 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]])
改正后代码正常!