按照勘误所说修改代码后发现运行出错,后来发现是因为根据书里给的链接下载的iris.data文件最后一行是空白行,print(dataset)就能知道。所以原来的代码没错,因为这里面其实有151行。要实现勘误说的那样不要-1,那就得亲自把iris.data文件最后的空白行删掉。
length = len(testInstance)-1中,不应该有-1,在迭代器中是从0开始的,且不包含length
如果按照书中的源码进行计算,distance元素的内容显示如下,算出的dist是有错误的,应该是4.242640687119285,5.830951894845301,6.708203932499369,4.358898943540674。如果把148页第12行后面改为length = len(testInstance) - 1 ,算出来的结果才是书中149页第七行的结果。
sortedVotes = sorted(classVotes.Items(),…….)这里应该打错了,字典的items()属性,不是Items()
将这个输出值带入如图7-4(b)所示的阶跃函数中,可得y=0,但是图7-4(b)中的阶跃函数,当值为0时,所对应的值应该为y=1。
按照勘误所说修改代码后发现运行出错,后来发现是因为根据书里给的链接下载的iris.data文件最后一行是空白行,print(dataset)就能知道。所以原来的代码没错,因为这里面其实有151行。要实现勘误说的那样不要-1,那就得亲自把iris.data文件最后的空白行删掉。
length = len(testInstance)-1中,不应该有-1,在迭代器中是从0开始的,且不包含length
如果按照书中的源码进行计算,distance元素的内容显示如下,算出的dist是有错误的,应该是4.242640687119285,5.830951894845301,6.708203932499369,4.358898943540674。如果把148页第12行后面改为length = len(testInstance) - 1 ,算出来的结果才是书中149页第七行的结果。
sortedVotes = sorted(classVotes.Items(),…….)
这里应该打错了,字典的items()属性,不是Items()
将这个输出值带入如图7-4(b)所示的阶跃函数中,可得y=0,但是图7-4(b)中的阶跃函数,当值为0时,所对应的值应该为y=1。