吴恩达机器学习笔记复盘(五)均方误差函数

只讲了线性回归的代价函数。

均方误差(Mean Squared Error, MSE)

均方误差(MSE)基于最小二乘法,通过计算预测值与真实值之间差值的平方的平均值来衡量模型的误差。

原理

假设我们有一组数据集\{(x_1,y_1),(x_2,y_2),\cdots,(x_n,y_n)\},其中x_i是第i个样本的特征向量,y_i是对应的真实值,我们的模型对x_i的预测值为\hat{y}_i。 我们的目标是找到一个函数f(x)(即模型),使得预测值\hat{y}_i = f(x_i)尽可能接近真实值y_i。为了衡量这种接近程度,我们定义误差函数e_i = y_i - \hat{y}_i,它表示第i个样本的预测误差。

为了得到一个总体的误差衡量指标,我们考虑将所有样本的误差进行综合。如果直接对误差求和\sum_{i = 1}^{n}e_i=\sum_{i = 1}^{n}(y_i - \hat{y}_i),由于误差有正有负,可能会相互抵消,不能准确反映总体的误差情况。 为了避免这种正负抵消的问题,我们对误差进行平方,得到e_i^2=(y_i - \hat{y}_i)^2。平方后的误差都是非负的,这样就可以将所有样本的误差平方相加,得到总的误差平方和SSE=\sum_{i = 1}^{n}(y_i - \hat{y}_i)^2。 然而,SSE的值会受到样本数量n的影响,样本数量越多,SSE通常会越大,不利于不同数据集或不同模型之间的比较。为了消除样本数量的影响,我们对SSE求平均,得到均方误差MSE=\frac{1}{n}\sum_{i = 1}^{n}(y_i - \hat{y}_i)^2。 通过最小化MSE,我们可以找到最优的模型参数,使得模型的预测结果在整体上尽可能接近真实值。

在数学上,可以通过对MSE关于模型参数求偏导数,并令偏导数为零,来求解使\(MSE\)最小的参数值。这就是均方误差的原理及求证过程。为了方面求导,MSE公式会转为 MSE=\frac{1}{2n}\sum_{i = 1}^{n}(y_i - \hat{y}_i)^2

简化模型

令fW​(X)=WX(即B=0),此时目标是找到使J(W)最小的W值。分别分析不同W取值时的情况:

  • 当W=1时,函数fW​(X)是斜率为1的直线,对于训练集中的三个点(1,1)、(2,2)、(3,3),f(Xi​)=Yi​,误差为0,代入成本函数J(W)计算得J(1)=0。
  • 当W=0.5时,f(X)是斜率为0.5的直线。分别计算三个训练样本的平方误差并求和得3.5,再乘以2m1​(m=3),得出J(0.5)=63.5​ 。
  • 当W=0时,f(X)是水平线,计算得J(0)=61​×14≈2.33 。
  • 当W=−0.5时,f(X)是向下倾斜直线,此时代价更高约为5.25。

这里可以得出第一种情况误差最小。但至今为止这里只是代入验证,并非求解。求解会引入另外一个问题 - 梯度下降。

理解

线性回归用数学来解释是,有函数f(x) = wx+b,求一个合适的w数值能满足给定数据集的最小误差。

即线性回归模型为fW,B​(X)=WX+B,通过选择合适的W和B使直线拟合训练数据,代价函数J(W,B)衡量模型预测与真实值差异,目标是最小化J(W,B) = MSE=\frac{1}{2n}\sum_{i = 1}^{n}(y_i - \hat{y}_i)^2

函数f(x)是根据数据集预测未来数值的函数,而J(w,b)是用来计算得出误差的最小情况的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/33989.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue生命周期_Vue生命周期钩子

一、生命周期介绍 每个 Vue 组件实例在创建时都需要经历一系列的初始化步骤,比如设置好数据侦听,编译模板,挂载实例到 DOM,以及在数据改变时更新 DOM。 在此过程中,它也会运行被称为生命周期钩子的函数,让…

arthas常用命令

文章目录 1. dashboard仪表板2. 通过thread命令来获取到math-game.jar进程的Main Class3. 通过jad来反编译Main Class4. watch监视5. 退出arthas6. 小结 欢迎关注 性能测试和优化 专栏:https://blog.csdn.net/qq_41684621/category_12910565.html 1. dashboard仪表…

c#Winform也可以跨平台了GTK框架GTKSystem.Windows.Forms

一、简介 >> 新版下载,问题求助 QQ群:1011147488 1032313876 236066073(满) Visual Studio原生开发,无需学习,一次编译,跨平台运行. C#桌面应用程序跨平台(windows、linux、…

Vue3 Pinia的getters属性

Pinia的getters属性 定义一个bigSum,值是sum*10 可以写成箭头函数的形式upperSchool中使用了this,不能写成箭头函数的形式

Atcoder ABC397-D 题解

https://atcoder.jp/contests/abc397/tasks/abc397_dhttps://atcoder.jp/contests/abc397/tasks/abc397_d 题目描述: 确定是否存在一对正整数,使得 思路: 首先对方程进行转化 设 即 接下来确定的范围 根据立方差公式 因此,我们可以从到来…

医疗送药机器人“空间拓扑优化+动态算法决策+多级容错控制”三重链式编程技术解析与应用

一、引言 1.1 研究背景与意义 在医疗体系中,高效精准的药品配送是保障医疗服务质量和患者安全的关键环节。随着医疗技术的不断进步和医疗需求的日益增长,传统的人工送药方式逐渐暴露出诸多弊端,如配送效率低下、易受人为因素干扰导致错误率上升、人力成本高昂等。特别是在…

Redis实现高并发排行榜的功能

生活中排行榜是常见的功能,如游戏的排行榜,销售额的排行榜等等,排行榜不仅可以让用户有更多的激情参与到活动中来,而且可以更好的留存住用户,如下所示的拉新排行榜: 排行榜是一个常见的业务需求&#xff0…

数字孪生像魔镜,映照出无限可能的未来

在当今科技飞速发展的时代,数字孪生作为一项极具潜力的前沿技术,正逐渐崭露头角,成为众多领域关注的焦点。它犹如一面神奇的魔镜,以数字化的方式精准映照出现实世界中的各种实体与系统,为我们开启了一扇通往无限可能未…

每日一题---

深拷贝和浅拷贝的区别是什么? null 浅拷贝是指只复制对象本身和其内部的值类型字段,但不会复制对象内部的引用类型字段。换句话说,浅拷贝只是创建一个新的对象,然后将原对象的字段值复制到新对象中,但如果原对象内部有…

Chrome 扩展开发 API实战:Sessions (六)

1. 引言 chrome.sessions 是 Chrome 扩展开发者工具的一部分,提供了对最近关闭的标签页和窗口的访问,以及对会话恢复功能的支持。现代浏览器的一个显著特点是为用户提供更多的便利性,比如快速恢复意外关闭的页面。通过 chrome.sessions API&…

Spring Boot对接twilio发送邮件信息

要在Spring Boot应用程序中对接Twilio发送邮件信息,您可以使用Twilio的SendGrid API。以下是一个简单的步骤指南,帮助您完成这一过程: 1. 创建Twilio账户并获取API密钥 注册一个Twilio账户(如果您还没有的话)。在Twi…

学习15天:pytest

1、.pytest强大的插件 pytest-html(生成html格式的自动化测试报告) pytest-xdist测试用例分布式执行。多CPU分发。 pytest-ordering 用于改变测试用例的执行顺序 pytest-rerunfailures用例失败后重跑 allure-pytest 用于生成美观的测试报告。 2、规则: 模块…

Springboot+mybatis实现增删改查操作

继续写一下删除操作,删除有些不一样,首先在controller里面,我们需要改一下路由,我们后面要写/{id}传入路径参数,用PathVariable注解绑定id,剩下的都一样,传入id,然后写service和mapp…

Visual Studio里的调试(debugging)功能介绍

参考 1- Introduction to Debugging | Basic Visual Studio Debugging(这是一位印度博主视频,我下面做到笔记也主要参考她的视频,但不得不说口音太重了,一股咖喱味) 目录 个人对调试浅显的认识和对调试的介绍逐行调…

Java多线程与高并发专题——原子类和 volatile、synchronized 有什么异同?

原子类和 volatile异同 首先,通过我们对原子类和的了解,原子类和volatile 都能保证多线程环境下的数据可见性。在多线程程序中,每个线程都有自己的工作内存,当多个线程访问共享变量时,可能会出现一个线程修改了共享变…

c语言笔记 作用域

目录 作用域的基本概念 1.函数声明的作用域 2.局部变量的作用域 3.全局作用域 4.static修饰后的作用域 作用域的基本概念 在c语言中,我们的标志符是具有一定的可见范围的,我们称这个可见范围为作用域 在软件开发中,我们要确定好标识符的作…

MySQL数据库知识总结

MySQL数据库知识总结 一、基本概念及其介绍二、数据库中的数据类型(一)数值类型(二)字符串类型(三)日期类型 三、数据库基础语法(一)数据库的常用操作(二)数据…

SpaceSync智能排班:重构未来办公空间的神经中枢

文心智能体平台可免费使用DeepSeek 满血版啦,使用DeepSeek模型创建并提交智能体,即有机会瓜分万元奖金!有这等好事还不快冲! 文心智能体官网:文心智能体平台AgentBuilder | 想象即现实 本片文章为作者参加文心智能体平…

Blender-MCP服务源码3-插件开发

Blender-MCP服务源码3-插件开发 Blender-MCP服务源码解读-如何进行Blender插件开发 1-核心知识点 1)使用Blender开发框架学习如何进行Blender调试2)学习目标1-移除所有的Blender业务-了解如何MCP到底做了什么?3)学习目标2-模拟MC…

每日一题---dd爱框框(Java中输入数据过多)

dd爱框框 实例: 输入: 10 20 1 1 6 10 9 3 3 5 3 7 输出: 3 5 这道题要解决Java中输入的数过多时,时间不足的的问题。 应用这个输入模板即可解决: Java中输入大量数据 import java.util.*; import java.io.*;pu…