当前位置: 首页 > news >正文

机器学习week2-线性回归加强

1. 多类特征

多个输入变量,将所有变量向量化

特征维度:n=4,有4个特征共同控制房价

多元线性回归:有多个输入特征的线性回归模型,使用点积简写模型

2. 向量化

  • 使代码更加简洁
  • 速度更快

  • 向量化能更高效地实现线性回归

3. 多元线性回归的梯度下降法

  • 正规方程 Normal Equation :仅适用于线性回归
  • 正规方程 vs 梯度下降

特性

正规方程

梯度下降

计算复杂度

O(n3)O(n3)(矩阵求逆代价高)

O(kn2)O(kn2)(k为迭代次数)

适用数据规模

n<104

任意规模

是否需要学习率

特征缩放需求

解的性质

精确解

近似解

优点

不需迭代

适用模型多

4. 特征缩放

将数据的不同特征/变量转换到相同或相近的数值范围的过程,比如把所有特征缩放到 [0,1] 或标准化为均值为0、方差为1。

根本原因:每个特征的学习率是固定的

  • 加速梯度下降收敛:梯度下降等优化算法在特征尺度不同时收敛慢(一个特征范围0-1,另一个0-10000)
  • 提高模型精度:特别是对基于距离的算法(如KNN、SVM)和正则化模型
  • 防止数值不稳定:避免某些特征因数值过大而主导模型训练

4.1. 最大值归一化

将特征值除以最大值:如果一个特征x1 的取值范围是300 到 2000,那么一种特征缩放的方法就是除以最大值,将x1/2000,缩放后x1的取值范围在0.15到1之间。

  • 将特征归一化到-1和1的范围内,其中前者适用于正数特征,方法简单且非常适合讲座中的示例

4.2. 均值归一化

    1. 公式:x_new = (x - 均值) / (max - min)
    2. 重新计算训练数据,使它们都在0 附近,取值范围在(-1,1)间
    3. 适用于任何特征

4.3. z-score 归一化

    1. 公式:x_new = (x - 均值) / 标准差
    2. 将特征缩放为均值为0,标准差为1的分布。结果范围不固定(通常 ≈ [-3, 3])
    3. 标准差的求法:
      1. 计算平均值 u1
      2. 计算方差,将每个数据减去平均值,取平方,再除以数据的个数
      3. 将方差开平方,得到的结果就是标准差

5. 检查梯度下降是否收敛

梯度下降时,怎么判断是否收敛,是否能帮助找到使代价函数全局最小值的参数

5.1. 学习曲线

尝试找出何时停止训练模型

  • 纵轴:代价 j
  • 横轴:迭代次数(每次迭代改变w、b值)

迭代次数增加,代价 j 应减小,如果增大则学习率ɑ太大、代码错误

5.2. 自动收敛测试

设变量ɛ 为小数,如0.001

如果在一次迭代中,代价 j 减小量 < ɛ ,则可能位于学习曲线的曲线平坦部分,收敛

6. 学习率的选择

绘制多个迭代次数的代价图

  • 代价 j 时升时降,梯度下降法未工作,代码错误 or 学习率 ɑ 太大
  • 代价 j 持续上升,学习率 ɑ 太大
  • 代价 j 持续下降,下降缓慢,学习率太小

调试时将学习率设置非常非常小,代价仍增加,则代码错误

选择学习率时,可以先选一个很小的学习率 0.001,选择三倍的学习率 0.003,再次三倍 0.01,根据学习曲线变化,得到一个很小、很大的学习率,再选择适中学习率。

7. 特征工程

如何选择、设计最合适的特征用于学习算法:转化、组合问题的原始特征

房屋价格原始特征:长、宽

根据现实,房屋面积也影响房屋价格,且影响很大,面积=长*宽 成为新特征

8. 多项式回归

多元线性回归 + 特征工程 = 多项式回归算法

引入特征的高次项来建模非线性关系

http://www.lryc.cn/news/585524.html

相关文章:

  • Java的extends通配符
  • netdxf—— CAD c#二次开发之(netDxf 处理 DXF 文件)
  • 和鲸社区深度学习基础训练营2025年关卡2(3)pytorch
  • 利用Claude code,只用文字版系统设计大纲,就能轻松实现系统~
  • 免费应用分发平台的安全漏洞和防护机制是什么?
  • 60 美元玩转 Li-Fi —— 开源 OpenVLC 平台入门(附 BeagleBone Black 驱动简单解析)
  • Windows解决 ping 127.0.0.1 一般故障问题
  • 【Linux网络】深入理解HTTP/HTTPS协议:原理、实现与加密机制全面解析
  • 信号量机制
  • 聊聊AI大模型的上下文工程(Context Engineering)
  • Spring 声明式事务:从原理到实现的完整解析
  • 运行ssh -T git@github.com报错
  • 多端协作白板:如何改变传统会议模式!
  • 设计模式 - 面向对象原则:SOLID最佳实践
  • 多态 使用场景
  • 【三维重建工具】NeRFStudio、3D GaussianSplatting、Colmap安装与使用指南
  • VOB如何转换成MP4格式?3种快速转换教程推荐
  • GT IP核仿真测试
  • Kubernetes 高级调度特性
  • 基于kafka的分布式日志收集与实时监控平台(原理,框架)
  • Spring MVC中异常处理
  • unity VR linerenderer的线会被UI盖住
  • 博客系统开发全流程解析(前端+后端+数据库)与 AI 协作初体验
  • [electron]升级功能
  • Android 12系统源码_分屏模式(一)从最近任务触发分屏模式
  • 有限状态机FSM(Finite State Machine)自动初始化
  • 提升你的AI交互技能:使用Anthropic互动提示教程
  • 2025年亚太中文赛B题第一版本超详细解题思路
  • CMU15445-2024fall-project1踩坑经历
  • 学弟让我帮忙写一个学生管理系统的后端,我直接上科技