《机器学习实战》是一本非常受欢迎的机器学习入门书籍,但是在书籍的写作过程中难免会有一些错误。本文将列出《机器学习实战》中的一些错误,并提供正确的解决方案。
第1章中介绍了k-近邻算法,但是在代码实现中有一个错误。计算欧氏距离的语句为:
```python
distances = ((dataSet - inX) ** 2).sum(axis=1) ** 0.5
但是正确的语句应该为:
```python
distances = (((dataSet - inX) ** 2).sum(axis=1)) ** 0.5
第2章中介绍了朴素贝叶斯算法,计算概率的语句为:
```python
p0Num = zeros(numWords)
p1Num = zeros(numWords)
p0Denom = 0.0
p1Denom = 0.0
for i in range(numTrainDocs):
if trainCategory[i] == 1:
p1Num += trainMatrix[i]
p1Denom += sum(trainMatrix[i])
else:
p0Num += trainMatrix[i]
p0Denom += sum(trainMatrix[i])
p1Vect = log(p1Num / p1Denom) # change to log()
p0Vect = log(p0Num / p0Denom) # change to log()
但是正确的语句应该为:
```python
p0Num = ones(numWords)
p1Num = ones(numWords)
p0Denom = 2.0
p1Denom = 2.0
for i in range(numTrainDocs):
if trainCategory[i] == 1:
p1Num += trainMatrix[i]
p1Denom += sum(trainMatrix[i])
else:
p0Num += trainMatrix[i]
p0Denom += sum(trainMatrix[i])
p1Vect = log(p1Num / p1Denom) # change to log()
p0Vect = log(p0Num / p0Denom) # change to log()
第3章中介绍了决策树算法,创建决策树的语句为:
```python
myTree = createTree(myDat, labels)
但是正确的语句应该为:
```python
myTree = createTree(array(myDat), array(labels))
第4章中介绍了基于回归的算法,使用局部加权线性回归进行预测的语句为:
```python
yHat[i] = xMat[i] * ws
但是正确的语句应该为:
```python
yHat[i] = xMat[i] * ws[i]
以上是《机器学习实战》中的一些错误及其解决方案,希望对读者有所帮助。在学习机器学习的过程中,我们应该不断地与书籍中的代码进行交互,并及时发现并解决其中的错误,以便更好地掌握机器学习的知识。