吴恩达2022机器学习专项课程(一) 第二周课程实验:特征缩放和学习率(多元)(Lab_03)

备注:笔者只对个人认为的重点代码做笔记,其它详细内容请参考吴恩达老师实验里的笔记。

1.多元特征的训练集

  • 调用load_house_data()函数,将训练集数据保存到数组中。
    在这里插入图片描述
  • X,y分别存储所有训练样本的前四列,所有训练样本的第五列
    在这里插入图片描述
  • 详细的训练样本,一共100行,100个训练样本。在这里插入图片描述

2.特征对房屋价格的影响

房子面积越大,数据点的趋势整体上升,因此面积对价格的影响最大,卧室数量和楼层对价格的影响忽上忽下,房屋年龄对价格的影响是整体下降。
在这里插入图片描述

3.学习率为9.9e-7,运行梯度下降

  • 设置学习率9.9乘10的负7次方,执行梯度下降,学习率设置过大,成本增加,梯度下降没有收敛。
    在这里插入图片描述
  • run_gradient_descent函数,初始化w数组和b,继续调用gradient_descent_houses。在这里插入图片描述
  • 重点在于gradient_descent_houses中的导数项计算函数gradient_function。
    在这里插入图片描述
  • gradient_function使用矩阵操作和向量化操作。
    在这里插入图片描述
  • f_wb:存储每行训练样本的预测值y帽。
  • e:存储每行训练样本预测值y帽和真实y的误差。
  • dj_dw = (1/m) * (X.T @ e) :对应m/1后的公式内容。
  • dj_db = (1/m) * np.sum(e) :对应m/1后的公式内容

在这里插入图片描述

  • dj_dw = (1/m) * (X.T @ e)解析

    • 第1行训练样本的误差乘以第1行训练样本的第1个特征,第1行训练样本的误差乘以第1行训练样本的第1个特征,第100行训练样本的误差乘以第100行训练样本的第1个特征,所有乘积结果累积,然后除以m/1,表示对w1参数求导,结果放入dj_dw数组中的索引0位置。
    • 第1行训练样本的误差乘以第1行训练样本的第2个特征,第2行训练样本的误差乘以第2行训练样本的第2个特征,第100行训练样本的误差乘以第100行训练样本的第2个特征,所有乘积结果累积,然后除以m/1,表示对w2参数求导,结果放入dj_dw数组中的索引1位置。
    • 依次类推,dj_dw是一个元素数量为4的一维数组,每个元素表示w1~w4的求导结果。
  • dj_db = (1/m) * np.sum(e)解析:对每行训练样本的误差求和即可。

  • 可以自己编写打印结果,更直观的查看。ctrl+s保存。在这里插入图片描述

  • 重启内核并运行全部。在这里插入图片描述

  • 看到了输出结果。在这里插入图片描述

  • 由于设置的迭代次数为10,我们抽取某一次来看看格式。

    • f_wb存储100个数,这100个数就是每组训练样本计算的预测值。
    • e存储100个数,是f_wb的每个元素减去y的每个元素,对应放入e。
    • dj_dw是计算一次梯度后,w1~w4参数对应的值。
    • dj_db是计算一次梯度后,b对应的值。在这里插入图片描述
  • 回到开始,当学习率为9.9e-7,成本函数一直增加,没有达到最小值。在这里插入图片描述

4.学习率为9e-7,运行梯度下降

  • 降低学习率,设置为9乘以10的负7次方。成本函数值在减小。在这里插入图片描述
  • 迭代次数增加,成本函数在减小,但是仍未到达最小值。
    在这里插入图片描述

4.学习率为1e-7,运行梯度下降

  • 继续降低学习率,1乘10的负7次方。在这里插入图片描述
  • 成本函数不断降低且能达到最小值,表示这个学习率选择比较合适。在这里插入图片描述

5.特征缩放,Z标准化

  • 函数实现Z标准化,计算并返回标准化后的特征矩阵 X_norm,均值 X_mu 和标准差 X_sigma。
    在这里插入图片描述
  • 绘制图标,经过特征缩放后,房屋的年龄和大小的尺度变得一致,数据分散均匀。在这里插入图片描述
  • 未标准化,每列特征最大最小的差距分别为2410,4,1,95。标准化后,每列特征最大值最小值差距为5.85,6.14,2.06,3.69,每个特征之间的尺度被缩小了。在这里插入图片描述
  • 注意看x轴,上图未标准化,下图标准化,标准化后的特征,尺度比较接近。在这里插入图片描述

6.特征缩放后运行梯度下降

  • 学习率可以选择更大,梯度下降更快。
    在这里插入图片描述
  • 橘色为预测值,和蓝色重合度较高,意味着特征缩放后,梯度下降更快且结果更精确。在这里插入图片描述

7.特征缩放后,使用模型预测

  • 对x_house_norm的训练集用标准化缩放,然后用线性回归函数预测房价。
    在这里插入图片描述

8.等高线图观察特征缩放

在这里插入图片描述

最近更新

  1. TCP协议是安全的吗?

    2024-04-12 08:08:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-12 08:08:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-12 08:08:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-12 08:08:03       20 阅读

热门阅读

  1. Thinkphp下载图片至压缩包

    2024-04-12 08:08:03       14 阅读
  2. netty实现mqtt(IOT)

    2024-04-12 08:08:03       15 阅读
  3. MySQL数据库——5、创建数据表

    2024-04-12 08:08:03       9 阅读
  4. python如何学习数据分析

    2024-04-12 08:08:03       14 阅读
  5. K8S之Kubelet

    2024-04-12 08:08:03       12 阅读
  6. 题目:学习putpixel画点。

    2024-04-12 08:08:03       14 阅读