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

吴恩达《机器学习》4-6->4-7:正规方程

一、正规方程基本思想

  • 正规方程是一种通过数学推导来求解线性回归参数的方法,它通过最小化代价函数来找到最优参数。

  • 代价函数 J(θ) 用于度量模型预测值与实际值之间的误差,通常采用均方误差。

二、步骤

  • 准备数据集,包括特征矩阵 X 和目标向量 y。特征矩阵通常包括一个全为1的常数列(截距项)。

  • 定义代价函数 J(θ),通常采用均方误差。

  • 推导代价函数 J(θ) 对参数θ的梯度,令梯度为零。

  • 将梯度为零的方程组转化为矩阵形式:X^T * X * θ = X^T * y。

  • 求解正规方程,得到最优参数θ:θ = (X^T * X)^(-1) * X^T * y。

三、正规方程的优点

  • 不需要选择学习率α,一次运算得出最优参数,无需迭代。

  • 在特征数量较小的情况下非常适用(通常 n < 10000)。

四、正规方程的限制和适用情况

  • 不适用于非线性模型,仅适用于线性回归。

  • 如果特征之间存在线性相关性,或者特征数量多于样本数量,正规方程可能不适用。

  • 对于特征数量大的情况,计算 (X^T * X)^(-1) 的逆矩阵可能会昂贵。

五、选择算法

  • 根据问题的特点、数据集的大小和特征的独立性来选择使用梯度下降法或正规方程。

  • 对于小型数据集和特征数量不多的情况,正规方程是一个有效的选择。

六、正规方程在矩阵不可逆时的解决办法

  • 使用伪逆函数 pinv()

    • 在Octave等数值计算工具中,可以使用伪逆函数 pinv() 来计算参数θ,即使特征矩阵X^T * X是不可逆的。这是一种弥补不可逆性的方法,它可以提供正确的解。

  • 处理线性相关的特征:

    • 当存在线性相关的特征时,如 x1 = (3.28)^2 * x2,矩阵X^T * X可能变得奇异或不可逆。此时,可以考虑去除一个或多个相关特征以减少特征数量,同时保持数据的信息内容。这将使X^T * X更容易求逆。

  • 特征选择和正则化:

    • 如果特征数量n太多,而训练样本数量m相对较少,可能会导致X^T * X不可逆。在这种情况下,可以考虑以下方法:

      • 删除一些不相关或冗余的特征,以降低特征数量。

      • 使用正则化方法,如Lasso或Ridge回归,来惩罚不必要的特征权重,从而解决不可逆性问题。

参考资料

[中英字幕]吴恩达机器学习系列课程

黄海广博士 - 吴恩达机器学习个人笔记

相关文章:

  • MacOS安装homebrew
  • 2023-macOS下安装anaconda,终端自动会出现(base)字样,如何取消
  • k8spod详解其二
  • 1-Docker虚拟化平台技术概述及简介
  • 大数据毕业设计选题推荐-智慧小区大数据平台-Hadoop-Spark-Hive
  • javaee实验:搭建maven+spring boot开发环境,开发“Hello,Spring Boot”应用
  • 栈相关代码
  • [hive]中的字段的数据类型有哪些
  • 关于ROS的网络通讯方式TCP/UDP
  • 68 内网安全-域横向PTHPTKPTT哈希票据传递
  • Redis的持久化机制
  • 如何在苹果Mac系统设置中查看Wi-Fi密码?
  • 阿里云二级域名绑定与宝塔Nginx反向代理配置
  • 前端下载后端文件流,文件可以下载,但是打不开,显示“文件已损坏”的问题分析与解决方案
  • 竞赛选题 深度学习实现语义分割算法系统 - 机器视觉
  • 「译」Node.js Streams 基础
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • CentOS7简单部署NFS
  • interface和setter,getter
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • linux安装openssl、swoole等扩展的具体步骤
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • select2 取值 遍历 设置默认值
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 写给高年级小学生看的《Bash 指南》
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • (6)设计一个TimeMap
  • (C#)获取字符编码的类
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (二)JAVA使用POI操作excel
  • (附源码)ssm码农论坛 毕业设计 231126
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • ****Linux下Mysql的安装和配置
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .Net Core和.Net Standard直观理解
  • .net mvc actionresult 返回字符串_.NET架构师知识普及
  • .NET导入Excel数据
  • .net开发引用程序集提示没有强名称的解决办法
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思
  • @FeignClient 调用另一个服务的test环境,实际上却调用了另一个环境testone的接口,这其中牵扯到k8s容器外容器内的问题,注册到eureka上的是容器外的旧版本...
  • @html.ActionLink的几种参数格式
  • @LoadBalanced 和 @RefreshScope 同时使用,负载均衡失效分析
  • @PreAuthorize注解
  • [2]十道算法题【Java实现】
  • [20150904]exp slow.txt
  • [Android] Android ActivityManager
  • [android]-如何在向服务器发送request时附加已保存的cookie数据
  • [AR]Vumark(下一代条形码)
  • [BZOJ 3680]吊打XXX(模拟退火)
  • [BZOJ4554][TJOI2016HEOI2016]游戏(匈牙利)
  • [C++] new和delete