机器学习实战勘误 纠错指南与实用技巧

5nAI 27 0

1. 第35页代码错误

书中第35页的代码中存在一个错误。正确的代码如下:

机器学习实战勘误 纠错指南与实用技巧

myDat,labels = trees.createDataSet()

print(trees.calcShannonEnt(myDat))

myDat[0][-1] = 'maybe'

print(trees.calcShannonEnt(myDat))

myDat[0][-1] = 'yes'

print(trees.calcShannonEnt(myDat))

2. 第67页笔误

书中第67页的第二段的第一句话存在笔误,应该是“在随机抽取样本时,每个样本被抽中的概率都是相等的”,而不是“每个特征被选中的概率都是相等的”。

3. 第82页代码错误

书中第82页的代码中存在一个错误。正确的代码如下:

myDat,labels = trees.createDataSet()

myTree = trees.createTree(myDat,labels)

print(myTree)

4. 第95页代码错误

机器学习实战勘误 纠错指南与实用技巧

书中第95页的代码中存在一个错误。正确的代码如下:

def createTree(dataSet,labels):

classList = [example[-1] for example in dataSet]

if classList.count(classList[0]) == len(classList):

return classList[0]

if len(dataSet[0]) == 1:

return trees.majorityCnt(classList)

bestFeat = trees.chooseBestFeatureToSplit(dataSet)

bestFeatLabel = labels[bestFeat]

myTree = {bestFeatLabel:{}}

del(labels[bestFeat])

featValues = [example[bestFeat] for example in dataSet]

uniqueVals = set(featValues)

for value in uniqueVals:

机器学习实战勘误 纠错指南与实用技巧

subLabels = labels[:]

myTree[bestFeatLabel][value] = createTree(trees.splitDataSet\

(dataSet, bestFeat, value),subLabels)

return myTree

1. 阅读源代码

如果你想深入了解机器学习实战的原理和实现细节,可以查看书中提供的源代码。这些源代码包含了书中的所有算法和实现细节,可以帮助你更好地理解和应用机器学习实战。

2. 尝试不同的数据集

机器学习实战提供了一些示例数据集,但这些数据集可能不适合你的具体问题。因此,你可以尝试使用其他数据集来验证你的算法和模型。Kaggle是一个很好的数据竞赛平台,你可以在上面找到各种各样的数据集和挑战。

3. 调整超参数

机器学习算法中的超参数对模型的性能和泛化能力有很大的影响。调整超参数可以帮助你找到最优的模型和参数组合。你可以使用交叉验证等技术来评估不同超参数设置的性能。

《机器学习实战》是一本非常好的机器学习实战教材,但难免存在一些错误。本文提供了一些勘误和实用技巧,希望能帮助读者更好地学习和应用机器学习实战。

标签: #代码 #机器学习实战 #labels