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

【machine learning-七-线性回归之成本函数】

监督学习之cost function

  • 成本函数
    • 权重、偏置
    • 如何实现拟合数据
      • 成本函数是如何寻找出来w和b,使成本函数值最小化?

在线性回归中,我们说到评估模型训练中好坏的一个方法,是用成本函数来衡量,下面来详细介绍一下

成本函数

权重、偏置

在线性回归( https://blog.csdn.net/zishuijing_dd/article/details/142131936?spm=1001.2014.3001.5501)一节中,我们要实现的线性模型就是要找出输入x和y的映射关系,这种映射关系可以被表示为y = wx + b,其中需要被确定的两个值,w被称做权重,b被称做偏置。
在这里插入图片描述
假设样本数据和拟合的直线如下图:
在这里插入图片描述
那么w实际是斜率,b就是截距。样本中的数据用(x(i),y(i))表示,样本中的y值是真实值,通常用y_label标记,而拟合的y = wx + b 线性模型,输入x(i)计算得出的y_predict 被称为预测值。
训练的目标就是让y_predict更接近于y_label,也就是称为更拟合

如何实现拟合数据

方法就是使用成本函数,这是一种评估y_predict和y_label的差值(误差)的方法,通常用的成本函数是样本数据误差的平方和,也就是(y_predict-y_label)2的和,当然为了防止误差无限变大,我们使用均值,也就是再除上样本个数,整体的公式如下:
在这里插入图片描述
注意一下,这个除了2倍的样本数,主要是为了后面计算简单,y_predict是函数f(w,b)的输出,所以公式最终成了上述样式。
这个误差计算方式就叫做均方误差成本函数。
所以实际上我们训练函数的目标就是,寻找合适的w和b让这个成本函数的值更小

不同的应用经常会选用不同的成本函数,但是平方误差几乎是线性回归的必选,在很多应用上的效果都不错。

成本函数是如何寻找出来w和b,使成本函数值最小化?

为了简化计算,以下面情况为例:
假设样本数据为(1,1),(2,2),(3,3)
偏置b 为0
我们的回归函数就是关于输入x的一个函数,所以它的横轴是x,如下图所示:
在这里插入图片描述
当w取不同值的时候,我们来计算成本函数:
注意一点J是关于w的函数,当w 为1的时候,按照公式计算成本函数J:
在这里插入图片描述
通过计算,我们知道当w为1的时候,成本函数的结果为0
然后我们依次计算w为0.5,1.5等的时候,成本函数的结果,然后可视化画出成本函数的线:

在这里插入图片描述
10412c9d14268716fdea40.png)

通过对成本函数的观察,我们会找到一些w,使得成本函数尽量的小。这些w就是最终的w。
至此我们就找到了合适的w,当然b也是同样的方式。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 力扣232:用栈实现队列
  • 列表、数组排序总结:Collections.sort()、list.sort()、list.stream().sorted()、Arrays.sort()
  • mysql性能优化-延迟写和异步写优化
  • Python中使用Redis布隆过滤器
  • miniconda环境配置
  • 深度学习自编码器 - 收缩自编码器(CAE)篇
  • 信安 实验1 用Wireshark分析典型TCP/IP体系中的协议
  • OpenCV运动分析和目标跟踪(3)计算图像序列的加权平均值函数accumulateWeighted()的使用
  • PyCharm用法
  • git拉取大文件
  • 数据库基础知识---------------------------(3)
  • solidwork剪裁实体
  • 【软考】计算机软件著作权
  • vscode关闭git的提交提示
  • 第一章 初识SpringBoot
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • crontab执行失败的多种原因
  • echarts花样作死的坑
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • JavaScript的使用你知道几种?(上)
  • JavaScript对象详解
  • JavaScript服务器推送技术之 WebSocket
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 聚簇索引和非聚簇索引
  • 设计模式(12)迭代器模式(讲解+应用)
  • 双管齐下,VMware的容器新战略
  • 项目实战-Api的解决方案
  • 用jquery写贪吃蛇
  • 原生js练习题---第五课
  • 主流的CSS水平和垂直居中技术大全
  • Java性能优化之JVM GC(垃圾回收机制)
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • ​Python 3 新特性:类型注解
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • # windows 安装 mysql 显示 no packages found 解决方法
  • #QT(一种朴素的计算器实现方法)
  • $.ajax,axios,fetch三种ajax请求的区别
  • (2024)docker-compose实战 (8)部署LAMP项目(最终版)
  • (3)nginx 配置(nginx.conf)
  • (55)MOS管专题--->(10)MOS管的封装
  • (6)STL算法之转换
  • (C++17) optional的使用
  • (C语言)球球大作战
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (二) 初入MySQL 【数据库管理】
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (每日一问)基础知识:堆与栈的区别
  • (学习总结16)C++模版2
  • (一)项目实践-利用Appdesigner制作目标跟踪仿真软件
  • . NET自动找可写目录