Skip to content

Commit e6e67f6

Browse files
Merge pull request apachecn#345 from Lisanaaa/patch-6
Update 8.预测数值型数据:回归.md
2 parents f196f2d + 682f562 commit e6e67f6

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

docs/8.预测数值型数据:回归.md

+15-1
Original file line numberDiff line numberDiff line change
@@ -392,6 +392,20 @@ def regression2():
392392

393393
> 测试算法: 使用 rssError()函数 计算预测误差的大小,来分析模型的效果
394394
395+
```python
396+
def rssError(yArr,yHatArr):
397+
'''
398+
Desc:
399+
       返回真实值与预测值误差大小
400+
Args:
401+
       yArr:样本的真实值
402+
       yHatArr:样本的预测值
403+
Returns:
404+
       一个数字,代表误差
405+
   '''
406+
return ((yArr-yHatArr)**2).sum()
407+
```
408+
395409
```python
396410
# test for abloneDataSet
397411
def abaloneTest():
@@ -634,7 +648,7 @@ def regression4():
634648

635649
![生成公式](../images/8.Regression/LinearR_16.png)
636650

637-
其中的 N(0, 1) 是一个均值为 0、方差为 1 的正态分布。我们尝试过禁用一条直线来拟合上述数据。不难想到,直线所能得到的最佳拟合应该是 3.0+1.7x 这一部分。这样的话,误差部分就是 0.1sin(30x)+0.06N(0, 1) 。在上面,我们使用了局部加权线性回归来试图捕捉数据背后的结构。该结构拟合起来有一定的难度,因此我们测试了多组不同的局部权重来找到具有最小测试误差的解。
651+
其中的 N(0, 1) 是一个均值为 0、方差为 1 的正态分布。我们尝试过仅用一条直线来拟合上述数据。不难想到,直线所能得到的最佳拟合应该是 3.0+1.7x 这一部分。这样的话,误差部分就是 0.1sin(30x)+0.06N(0, 1) 。在上面,我们使用了局部加权线性回归来试图捕捉数据背后的结构。该结构拟合起来有一定的难度,因此我们测试了多组不同的局部权重来找到具有最小测试误差的解。
638652

639653
下图给出了训练误差和测试误差的曲线图,上面的曲面就是测试误差,下面的曲线是训练误差。我们根据 预测鲍鱼年龄 的实验知道: 如果降低核的大小,那么训练误差将变小。从下图开看,从左到右就表示了核逐渐减小的过程。
640654

0 commit comments

Comments
 (0)