《机器学习实战》第9章的树回归运行时频繁出错,这里主要有两点:
1. TypeError: unhashable type: ‘matrix’
出错的代码行是:
for splitVal in set(dataSet[:,featIndex]):
应改为:
for splitVal in set(dataSet[:,featIndex].T.A.tolist()[0]):
具体分析过程查看:http://blog.csdn.net/lilong117194/article/details/78443203
2. IndexError: index 0 is out of bounds for axis 0 with size 0
出错的代码行是:
def binSplitDataSet(dataSet, feature, value):
mat0 = dataSet[nonzero(dataSet[:,feature] > value)[0],:][0]
mat1 = dataSet[nonzero(dataSet[:,feature] <= value)[0],:][0]
return mat0,mat1
应改为:
def binSplitDataSet(dataSet, feature, value):
mat0 = dataSet[nonzero(dataSet[:,feature] > value)[0],:]
mat1 = dataSet[nonzero(dataSet[:,feature] <= value)[0],:]
return mat0,mat1
具体分析过程查看:http://blog.csdn.net/lilong117194/article/details/78283358
修改之后运行结果:
树字典:
{'spInd': 0, 'spVal': 0.48813, 'right': -0.044650285714285719, 'left': 1.0180967672413792}