白话机器学习的数学-1-回归

1、设置问题

投入的广告费越多,广告的点击量就越高,进而带来访问数的增加。

2、定义模型

定义一个函数:一次函数
y = ax + b  (a 是斜率、b 是截距)
定义函数:

3、最小二乘法

例子:  用随便确定的参数计算的值与实际的值存在偏差。
假设有 n 个训练数据, 那么它们的误差之和可以用这样的表达式表示。
这个表达式称为 目标函数,E(θ) 的 E 是误差的英语单词 Error 的首字母,∑读作“西格玛”。
这么做是为了找到使 E(θ) 的值最小 的 θ,这样的问题称为最优化问题。
来计算一下表格 E(θ) 的值,设 θ0 = 1、θ1 = 2, 然后将刚才列举的 4 个训练数据代入表达式

4、梯度下降法(最速下降法)

微分是计算变化的快慢程度时使用的方法。
函数 g(x):
微分(求导):
x < 1 为负数,x = 1 为0,x > 1 为正数。
根据导数的符号来决定移动 x 的方向,只要向与导数的符号相反的方向移动 x,g(x) 就会自然而然地沿着最小值的方向前进了, 这也被称为最速下降法或梯度下降法 。
η  是称为学习率的正的常数,读作“伊塔”。根据学习率的大小, 到达最小值的更新次数也会发生变化。换种说法就是收敛速度会 不同。有时候甚至会出现完全无法收敛,一直发散的情况。
比如 η = 1,从 x = 3 开始 (结果是一直发散,无法收敛):
那设 η = 0.1,同样从 x = 3 开始:
回过头来看一下目标函数 E(θ):
这个目标函数是拥有 θ0 和 θ1 的双变量函数,所以不能用 普通的微分,而要用偏微分:
设:
计算微分:
同样:
所以参数 θ0 和 θ1 的更新表达式是:

5、多项式回归

上面是一次函数,用更大次数的表达式, 这样就能表示更复杂的曲线。
不过对于要解决的问题,在找出最合适的表达式之前,需要 不断地去尝试。
虽然次数越大拟合得越好,但难免也会出现过拟合的问题。
如二次函数:
曲线如下:
曲线看起来更拟合数据。
计算微分:
像这样增加函数中多项式的次数,然后再使用函数的分析方法被称为多项式回归。

6、多重回归

多项式回归问题中确实会涉及不同次数的项,但是使用的变量依然只有广告费一项。
我们稍微扩展一下之前设置的问题。之前只是根据广告费来预 测点击量,现在呢,决定点击量的除了广告费之外,还有广告的 展示位置和广告版面的大小等多个要素。
为了让问题尽可能地简单,这次我们只考虑广告版面的大小,设 广告费为 x1、广告栏的宽为 x2、广告栏的高为 x3,那么 fθ 可以 表示如下:
下面我们把它推广到有 n 个变量的情况:
使用向量表示:
求微分:
u 对 v 微分的部分是一样的,所以只需要求 v 对 θj 的微分就好了
那么第 j 个参数的更新表达式就是这样的:
像这样包含了多个变量的回归称为多重回归。

7、随机梯度下降法

梯度下降法是对所有的训练数据都重复进行计算,缺点是计算量大、计算时间长,且容易陷入局部最优解 。
在随机梯度下降 法中会随机选择一个训练数据,并使用它来更新参数。这个表达 式中的 k 就是被随机选中的数据索引:
梯度下降法更新 1 次参数的时间,随机梯度下降法可以更新 n 次。 此外,随机梯度下降法由于训练数据是随机选择的,更新参数时使用的又是选择数据时的梯度,所以不容易陷入目标函数的局部最优解。
我们前面提到了随机选择 1 个训练数据的做法,此外还有随机选 择 m 个训练数据来更新参数的做法。
设随机选择 m 个训练数据的索引的集合为 K,那么我们这样 来更新参数:
这种做法被称为小批量(mini-batch)梯度下降法。
不管是随机梯度下降法还是小批量梯度下降法,我们都必须考虑 学习率 η。
把 η 设置为合适的值是很重要的, 可以通过反复尝试来找到合适的值。

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

node 项目中 __dirname / __filename 是什么,为什么有时候不能用?

__dirname 是 Node.js 中的一个特殊变量&#xff0c;表示当前执行脚本所在的目录的绝对路径。 __filename 同理&#xff0c;是 Node.js 中的一个特殊变量&#xff0c;表示当前执行脚本的绝对路径&#xff0c;包括文件名。 在 Node.js 中&#xff0c;__dirname / __filename是…

用通俗易懂的方式讲解大模型:Prompt 提示词在开发中的使用

OpenAI 的 ChatGPT 是一种领先的人工智能模型&#xff0c;它以其出色的语言理解和生成能力&#xff0c;为我们提供了一种全新的与机器交流的方式。但不是每个问题都可以得到令人满意的答案&#xff0c;如果想得到你所要的回答就要构建好你的提示词 Prompt。本文将探讨 Prompt 提…

鸿鹄电子招投标系统:基于Spring Boot、Mybatis、Redis和Layui的企业电子招采平台源码与立项流程

在数字化时代&#xff0c;企业需要借助先进的数字化技术来提高工程管理效率和质量。招投标管理系统作为企业内部业务项目管理的重要应用平台&#xff0c;涵盖了门户管理、立项管理、采购项目管理、采购公告管理、考核管理、报表管理、评审管理、企业管理、采购管理和系统管理等…

elasticsearch系列九:异地容灾-CCR跨集群复制

概述 起初只在部分业务中采用es存储数据&#xff0c;在主中心搭建了个集群&#xff0c;随着es在我们系统中的地位越来越重要&#xff0c;数据也越来越多&#xff0c;针对它的安全性问题也越发重要&#xff0c;那如何对es做异地容灾呢&#xff1f; 今天咱们就一起看下官方提供的…

分布式事务之最终一致性

分布式事务之最终一致性 参考链接分布式事务基础理论概述案例解决方案:RocketMQ可靠消息注意事项&#xff1a;代码实现 参考链接 原文链接&#xff1a;https://blog.csdn.net/jikeyeka/article/details/126296938 分布式事务基础理论 基于上述的CAP和BASE理论,一般情况下会保…

西北大学844计算机类考研-25级初试高分总攻略

西北大学844计算机类考研-25级初试高分攻略 个人介绍 ​ 本人是西北大学22级软件工程研究生&#xff0c;考研专业课129分&#xff0c;过去一年里在各大辅导机构任职&#xff0c;辅导考研学生专业课844&#xff0c;辅导总时长达400小时&#xff0c;辅导学生超过20余人&#xf…

展现无限创意的Photoshop 2023 Mac/win中文版:打造您的独特艺术之旅

无论您是摄影师、设计师还是艺术家&#xff0c;Photoshop 2023&#xff08;ps 2023&#xff09;都是您不可或缺的创意工具。最新升级的Photoshop 2023带来了更多令人兴奋的功能和改进&#xff0c;让您能够以前所未有的方式展现无限创意。 首先&#xff0c;Photoshop 2023拥有强…

uni-app引入vant表单(附源码)

新建项目 下载安装vant npm i vant main.js引入 import { Form } from vant; import { Field } from vant;Vue.use(Form); Vue.use(Field);代码引入 <van-form submit"onSubmit"><van-fieldclass"rePwd"v-model"username"name"请…

SpringBoot 接口对数据枚举类型的入参以及出参转换处理

目录 1、在项目中使用枚举类型2、不做任何处理的演示效果2.1、接口出参2.2、接口入参 3、用枚举的code作为参数和返回值3.1 代码案例3.1.1、定义枚举基础接口BaseEnum&#xff0c;每个枚举都实现该接口3.1.2、性别Sex枚举并实现接口BaseEnum3.1.3、定义BaseEnum枚举接口序列化3…

Python+OpenCV 零基础学习笔记(4-5):计算机图形基础+Python相对文件路径+OpenCV图像+OpenCV视频

文章目录 相关链接运行环境前言计算机图形OpenCV简单使用图形读取文件读取可能会出现的问题&#xff1a;路径不对解决方案其它路径问题解决方案 图像显示保存OpenCV视频视频素材如何获取&#xff1f;简单视频读取 相关链接 【2022B站最好的OpenCV课程推荐】OpenCV从入门到实战 …

Spring高手之路-Spring事务的传播机制(行为、特性)

目录 含义 七种事务传播机制 1.REQUIRED&#xff08;默认&#xff09; 2.REQUIRES_NEW 3.SUPPORTS 4.NOT_SUPPORTED 5.MANDATORY 6.NEVER 7.NESTED 含义 事务的传播特性指的是当一个事务方法被另一个事务方法调用时&#xff0c;这个事务方法应该如何进行&#xff1f; 七…

HTTP限流控制:Go语言中的精细把关

开场白&#xff1a;在Web应用中&#xff0c;流量控制是一个关键的防护措施&#xff0c;用于防止资源过度消耗和潜在的安全威胁。特别是在面对DDoS攻击或异常请求时&#xff0c;限流显得尤为重要。今天&#xff0c;我们将探讨如何在Go语言中实现HTTP的限流控制。 知识点一&…

elasticsearch-hadoop.jar 6.8版本编译异常

## 背景 重新编译 elasticsearch-hadoop 包&#xff1b; GitHub - elastic/elasticsearch-hadoop at 6.8 编译 7.17 版本时很正常&#xff0c;注意设置下环境变量就好&#xff0c;JAVA8_HOME/.... 编译 6.8 版本时&#xff08;要求jdk8 / jdk9&#xff09;&#xff0c;出现…

使用 Django 的异步特性提升 I/O 类操作的性能

目录 一、引言 二、Django 的异步特性 三、提升 I/O 类操作的性能 四、示例代码 五、总结 一、引言 Django 是一个高级的 Python Web 框架&#xff0c;它以快速开发和简洁的代码而闻名。然而&#xff0c;对于一些 I/O 密集型的应用程序&#xff0c;Django 的同步特性可能…

kubeadm创建k8s集群

kubeadm来快速的搭建一个k8s集群&#xff1a; 二进制搭建适合大集群&#xff0c;50台以上。 kubeadm更适合中下企业的业务集群。 部署框架 master192.168.10.10dockerkubelet kubeadm kubectl flannelnode1192.168.10.20dockerkubelet kubeadm kubectl flannelnode2192.168.1…

Linux 查看应用cpu使用情况

1、top 命令可查看当前系统所有应用cpu使用情况 2、top -H -p pid 可查看应用下线程cpu使用情况

Docker安装Grafana

1. 介绍 Grafana 是一个开源的度量分析和可视化工具&#xff0c;可以通过将采集的数据分析、查询&#xff0c;然后进行可视化的展示&#xff0c;并能实现报警。参考官网地址&#xff1a;Run Grafana Docker image | Grafana documentation 2. 安装Grafana (1) . 下载 命令&…

第二章 Eureka服务注册与发现

Eureka服务注册与发现 gitee&#xff1a;springcloud_study: springcloud&#xff1a;服务集群、注册中心、配置中心&#xff08;热更新&#xff09;、服务网关&#xff08;校验、路由、负载均衡&#xff09;、分布式缓存、分布式搜索、消息队列&#xff08;异步通信&#xff…

unity 编辑器的日志打印界面详解(有些不常见的问题)

提示&#xff1a;文章有错误的地方&#xff0c;还望诸位大神不吝指教&#xff01; 文章目录 前言一、Console界面1.Console窗口没有显示2.Clear3.Collapse4.Clear on Play5.Clear on Build6.Error Pause7.Editor1.Player Logging2.Editor3.<Enter IP> 二 搜索和过滤控制台…

实战 | 使用OpenCV快速去除文档中的表格线条(步骤 + 源码)

导 读 本文主要介绍如何使用OpenCV快速去除文档中的表格线条,并给详细步骤和代码。 背景介绍 测试图如下,目标是去除下面三张图中的表格线条,方便后续图像处理。 实现步骤 下面演示详细步骤,以图1为例: 【1】获取二值图像:加载图像、转为灰度图、OTSU二值化 i…