白话机器学习的数学-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)梯度下降法。
不管是随机梯度下降法还是小批量梯度下降法,我们都必须考虑 学习率 η。
把 η 设置为合适的值是很重要的, 可以通过反复尝试来找到合适的值。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

BDTC2023:CloudberryDB开源创新与实践

中国大数据技术大会&#xff08;BDTC&#xff09;由中国计算机学会&#xff08;CCF&#xff09;创立于2008年&#xff0c;已经成为国内外极具行业实践的专业大数据交流平台。12月22日-24日&#xff0c;第十七届中国大数据技术大会&#xff08;BDTC 2023&#xff09;在广州举行。…

文字识别技术在未来会有怎样的发展?

随着科技的不断发展&#xff0c;文字识别技术也在不断地改进和完善。未来&#xff0c;文字识别技术将会在更多的领域得到应用&#xff0c;并且将会更加智能化、高效化和个性化。 首先&#xff0c;随着深度学习技术的不断发展&#xff0c;文字识别技术将会更加智能化。目前&…

ubuntu22下安装minconda

bing 搜索 canda install 找到官方网站 https://docs.conda.io/projects/miniconda/en/latest/ 这里我们安装minconda。 官网有安装方法。 mkdir -p ~/miniconda3 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh…

docker的基本管理和相关概念

docker的基本管理和概念 docker&#xff1a;开源的应用容器引擎。基于go语言开发的。运行在linux系统当中的开源的&#xff0c;轻量级的“虚拟机” docker的容器技术可以在一台主机上轻松的为任何应用创建一个轻量级的&#xff0c;可移植的&#xff0c;自给自足的容器 docke…

Java 读取超大excel文件

注意&#xff1a;此参考解决方案只是针对xlsx格式的excel文件&#xff01; Maven <dependency><groupId>com.monitorjbl</groupId><artifactId>xlsx-streamer</artifactId><version>2.2.0</version> </dependency>读取方式1…

Android画布Canvas矩阵Matrix放大裁剪Rect区域的Bitmap,Kotlin

Android画布Canvas矩阵Matrix放大裁剪Rect区域的Bitmap&#xff0c;Kotlin private fun mydraw() {val originBmp BitmapFactory.decodeResource(resources, R.mipmap.pic).copy(Bitmap.Config.ARGB_8888, true)val newBmp Bitmap.createBitmap(originBmp.width, originBmp.h…

爬虫基础一(持续更新)

爬虫概念&#xff1a; 通过编写程序&#xff0c;模拟浏览器上网&#xff0c;然后让其去互联网上抓取数据的过程 分类&#xff1a; 1&#xff0c;通用爬虫&#xff1a;抓取一整张页面数据 2&#xff0c;聚焦爬虫&#xff1a;抓取页面中的局部内容 3&#xff0c;增量式爬虫&…

CUMT--Java--线程

目录 一、线程 1、概述 2、Java线程模型 3、主线程 二、创建线程 1、继承Thread类 2、实现Runnable接口 3、使用Callable和Future接口 三、线程生命周期 1、新建和就绪状态 2、运行和阻塞状态 3、死亡状态 四、线程优先级 五、线程同步 1、非同步情况 2、同步…

浅谈WPF之控件模板Control Template和数据模板Data Template

WPF不仅支持传统的Windows Forms编程的用户界面和用户体验设计&#xff0c;同时还推出了以模板为核心的新一代设计理念。在WPF中&#xff0c;通过引入模板&#xff0c;将数据和算法的“内容”和“形式”进行解耦。模板主要分为两大类&#xff1a;数据模板【Data Template】和控…

创建加密分区或者文件

文章目录 [GParted 中已清除的分区与未格式化的分区](https://superuser.com/questions/706624/cleared-vs-unformatted-partition-in-gparted)创建加密分区解密创建的加密分区以便挂载格式化设备未具体的格式&#xff08;这里为ext4格式&#xff09;创建挂载点目录挂载加密的文…

java在线票务系统(选座)Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java servlet 在线票务系统&#xff08;选座&#xff09;管理系统是一套完善的java web信息管理系统 系统采用serlvetdaobean&#xff08;mvc模式)&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要…

深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第六节 理解垃圾回收GC,提搞程序性能

深入浅出图解C#堆与栈 C# Heaping VS Stacking 第六节 理解垃圾回收GC&#xff0c;提搞程序性能 [深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第一节 理解堆与栈](https://mp.csdn.net/mdeditor/101021023)[深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第二节 栈基…

泛目录是干什么用的蚂蚁seo泛程序

泛目录是干什么用的蚂蚁seo泛程序目录 泛目录是一种常见的网站优化方法&#xff0c;属于黑帽技术的一种。它的核心原理是利用高权重的网站继承目录&#xff0c;然后快速获得收录与排名。这种方法可以帮助网站在搜索引擎中获得更好的排名&#xff0c;从而吸引更多的流量。 泛目…

右键菜单“以notepad++打开”,在windows文件管理器中

notepad 添加到文件管理器的右键菜单中 找到安装包&#xff0c;重新安装一般即可。 这里有最新版&#xff1a;地址 密码:f0f1 方法 在安装的时候勾选 “Context Menu Entry” 即可 Notepad的右击打开文件功能 默认已勾选 其作用是添加右键快捷键。即&#xff0c;对于任何…

云计算:OpenStack 配置云主机实例的资源实现内网互通

目录 一、实验 1. 环境 2.配置项目及用户 3.配置规格实例与镜像 4.配置VPC 5. 配置安全组 6. 创建云主机 cs_01 &#xff08;cirros系统&#xff09; 7.创建云主机 cs_02 &#xff08;cirros系统&#xff09; 8.创建云主机 cs_03 &#xff08;cirros系统&#xff09; …

小米路由器2(R2D) 安装 MIXBOX

1. 先刷开发版 ROM http://www1.miwifi.com/miwifi_download.html 进入上述网页&#xff0c;找到 R2D 点击下载 开发版 ROM 教程 看 下载按钮上边的 “刷机教程” 刷机教程 2. 开启SSH工具 登录自己的小米账号后&#xff0c;里面会显示出 自己的 root密码&#xff1b; 默认…

uniapp中的uview组件库丰富的Keyboard 键盘 用法

目录 基本使用 #隐藏键盘"."符号 #是否打乱按键的顺序 #如何控制键盘的打开和关闭&#xff1f; #如何监听键盘按键被点击&#xff1f; API #Props #Events #Slot 基本使用 通过mode参数定义键盘的类型&#xff0c;show绑定一个值为布尔值的变量控制键盘的弹…

每日一题:LeetCode-LCR 179. 查找总价格为目标值的两个商品

每日一题系列&#xff08;day 16&#xff09; 前言&#xff1a; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f50e…

JVM 常用知识和面试题

1. 什么是JVM内存结构&#xff1f; jvm将虚拟机分为5大区域&#xff0c;程序计数器、虚拟机栈、本地方法栈、java堆、方法区&#xff1b; 程序计数器&#xff1a;线程私有的&#xff0c;是一块很小的内存空间&#xff0c;作为当前线程的行号指示器&#xff0c;用于记录当前虚拟…

InterSystems 数据库的存储过程存在哪里

我们都知道 InterSystems 的 Studio 可以创建存储过程。 但这个存储过程我们保存的时候是保存在哪里&#xff1f; 存储逻辑 如果我们在 Studio 创建存储过程的话&#xff0c;存储过程是存储在数据库上面的。 本地文件夹中是没有存储的。 选择系统下面的存储过程&#xff0c…