[置顶] 《机器学习实战》 自制勘误表 中文版第一版2015年9月第11次印刷版

在阅读学习《机器学习实战》过程中,笔者发现书中程序在执行时往往存在问题,但官方的勘误表并没有记述这些问题,笔者认为这应该属于错误,故做此总结,作为自己的勘误表使用。


## P41

程序清单3-4,语句

del(labels(bestFeat))
破坏了labels的结构,需在后面for循环块之后,return语句之前进行恢复,即添加下述语句
labels.insert(bestFeat, bestFeatLabel)


## P162 

上部,binSplitDataSet函数中代码

mat0 = dataSet[nonzero(dataSet[:,feature] >value)[0], :][0]
mat1 = dataSet[nonzero(dataSet[:,feature]<=value)[0], :][0]

应改为

mat0 = dataSet[nonzero(dataSet[:,feature] >value)[0], :]
mat1 = dataSet[nonzero(dataSet[:,feature]<=value)[0], :]


## P164

程序清单9-2,chooseBestSplit函数中代码

for featIndex in range(n-1):
	for splitVal in set(dataSet[:,featIndex]):

应改为

for featIndex in range(n-1):
	for splitVal in set(dataSet[:,featIndex].T.tolist()[0]):



## P186

程序清单10-1,randCent函数中代码

centroids[:,j] = minJ + rangeJ * random.rand(k,1)
应改为
centroids[:,j] = minJ + rangeJ * * random.random(size=(k,1))


##

你可能感兴趣的:([置顶] 《机器学习实战》 自制勘误表 中文版第一版2015年9月第11次印刷版)