二、学习回归 - 基于广告费预测点击量

news2024/11/24 5:57:06

山外风雨三尺剑

有事提剑下山去

云中花鸟一屋书

无忧翻书圣贤来

1.设置问题

以Web广告和点击量的关系为例来学习回归。

前提:投入的广告费越多,广告的点击量就越高。

根据以往的经验数据,可以得到下图:

那么假设我要投200块的广告费,那么带来的点击量有多少呢?

也就是500次左右。

这就是机器学习。你所做的事情正是从已知的数据中进行学习,然后给出预测值

2.定义模型

只要知道通过图中各点的函数形式,就能根据广告费得知点击量。

注意:“点击量中含有噪声”,所以函数不可能穿过所有的点。

可以得到一次函数:

一个是截距,一个表示斜率。

由这个函数可知,x是广告费,y是点击量。

可以把上面这个一次函数想象成是一个能够根据投入广告费预测点击量的模型,而θ0和θ1就是模型的参数值。模型的好坏(即预测结果的准确性)和模型的参数值息息相关。

现在我们不知道这两个参数值取多少对这个模型来说最优。

根据数学中的假设法,既然不知道,就先随便假设试一试。先假设θ0=1、θ1=2,那么上面的一次函数就会变成:

根据假设的这个模型,现在我要投入x=100块钱的广告费,那么预测的点击量:

y = 1 + 2 * 100 =201

再看一下之前数据实际情况:

所以假设的θ0=1、θ1=2完全不正确,根据这两个参数得出的模型,并不能得到正确结果。

下面我们就是要使用机器学习来求出正确的θ0与θ1。

3 最小二乘法

首先,转换一次函数的表达式:

这样就能一眼看出,这是一个含有参数θ,并且和变量x相关的函数。

我们之前有过投入的广告费与点击量之间的实际数据,如下:

在图中表示:

根据刚才我们随便假设的参数,可以得到 fθ(x)=1+2x

将实际投入的广告费代入预测点击量:

可以看出,根据随便假设的参数预测的值与实际情况相差很大,这种用随便确定的参数计算的值与实际的值存在偏差。 

最理想的情况是,我们的预测值与实际值一致,即y-fθ(x)=0。这就是说y和fθ(x)之间的误差为0。

但是,不可能让所有的误差都等于0,所以我们要做的就是让所有点的误差之和尽可能小。

用表达式展现出来就是:

 

这个表达式称为目标函数(核心),E(θ)的E是误差的英语单词Error的首字母,这类问题叫最优化问题

注意点:

1. x(i)和y(i)中的i不是i次幂的意思,而是指第i个训练数据。

2. 要计算误差的平方,排除误差为负值的情况。

3. 乘以1/2,表达式更好微分,而且不影响函数本身取最小值的点。

将开始的广告费与点击量数据代入进去可得:

误差太大,我们要做的就是让误差变小,使得预测值接近实际值,这种求误差的方法也叫作最小二乘法

要让E(θ)越来越小,就要去不停参数θ的值,然后再去与实际值一次次进行比较修改,这样太麻烦,正确做法是使用微分。

示例:

有一个二次函数为g(x)=(x-1)*2

首先对g(x)进行微分:

可以知道它的增减表:

在x=3这一点,为了使g(x)的值变小,我们需要向左移动x,也就是必须减小x

在另一侧的x=-1这一点,为了使g(x)的值变小,我们需要向右移动x,也就是必须增加x

也就是说根据导数的符号来决定移动x的方向,与导数符号相反的方向移动,g(x)就会沿着最小值的方向前进。

把上面说的话总结起来,用表达式来表示:

这就是最速下降法或梯度下降法

A:=B这种写法,它的意思是通过B来定义A,参数自动更新。简单来说,就是用上一个x来定义新的x。

η称为学习率,读作“伊塔”。根据学习率的大小,到达最小值的更新次数也会发生变化。换种说法就是收敛速度会不同。有时候甚至会出现完全无法收敛,一直发散的情况。

所以η的取值很重要,如η=1,从x=3开始

 

这样就会陷入死循环。

设η=0.1,同样从x=3开始

如果η较大,那么x:=x-η(2x-2)会在两个值上跳来跳去,甚至有可能远离最小值。这就是发散状态。而当η较小时,移动量也变小,更新次数就会增加,但是值确实是会朝着收敛的方向而去。

现在我们再来讨论广告费与点击量的目标函数:

但是这个目标函数中包含fθ(x),fθ(x)拥有θ0和θ1两个参数。也就是说这个目标函数是拥有θ0和θ1的双变量函数,所以不能用普通的微分,而要用偏微分

求表达式θ0的偏微分:

E(θ)中有fθ(x),而fθ(x)中又有θ0,所以可以使用复合函数

阶梯型地进行微分

先从u对v微分的地方开始计算

再v对θ0进行微分

v替换回fθ(x) 

再v对θ0进行微分

最后得到参数θ0和θ1的更新表达式:

只要根据这个表达式来更新θ0和θ1,就可以找到正确的一次函数fθ(x)了。

用这个方法找到正确的fθ(x),然后输入任意的广告费,就可以得到相应的点击量。这样我们就能根据广告费预测点击量了。

4 多项式回归

之前是将图像拟合成了一条直线,但是,在实际情况中,曲线比直线拟合的效果会更好。

曲线对应的二次函数:

或者使用更大次数的表达式也可以:

但是,并不是函数次数越好,拟合的就越好,可能会出现过拟合问题。

最终的参数更新表达式:

像这样增加函数中多项式的次数,然后再使用函数的分析方法被称为多项式回归

5 多重回归

之前我们是根据广告费来预测点击量,即只有一个变量(广告费x),但是在实际中要解决的很多问题是变量超过两个的复杂问题。

比如,除了广告费,点击量的多少还受到广告展示位置和广告版面大小等多个要素,即多个变量x。

为了让问题尽可能地简单,这次我们只考虑广告版面的大小,设广告费为x1、广告栏的宽为x2、广告栏的高为x3,那么fθ可以表示如下:

然后就可以对函数做微分了,但是在这之前可以了解一下表达式的简化形式。

简化方法:把参数θ和变量x看做向量

为了方便计算,两边对齐

把θ转置之后,与x相乘的结果

所以,在实际编程时,只需要用普通的一维数组表示就可以:

求微分时是与之前一样的,所以只需要求v对θj的微分就好了

那么第j个参数的更新表达式:

这样包含多个变量的回归称为多重回归

6 随机梯度下降法

前面讲的梯度下降算法有两个缺点,一个是一次次更新x,花费的时间长,还有就是容易陷入局部最优解

比如下面这种函数:

从不同地方选择最开始的x,会陷入局部最优解。

随机梯度下降法是以最速下降法为基础的。

最速下降法的参数更新表达式:

这个表达式使用了所有训练数据的误差。而在随机梯度下降法中会随机选择一个训练数据,并使用它来更新参数。

表达式中的k就是被随机选中的数据索引。最速下降法更新1次参数的时间,随机梯度下降法可以更新n次。此外,随机梯度下降法由于训练数据是随机选择的,更新参数时使用的又是选择数据时的梯度,所以不容易陷入目标函数的局部最优解。

此外还有随机选择m个训练数据来更新参数的做法:

设随机选择m个训练数据的索引的集合为K

假设训练数据有100个,那么在m=10时,创建一个有10个随机数的索引的集合,例如K={61, 53, 59, 16, 30, 21, 85,31, 51, 10},然后重复更新参数就行了。

这种方法叫做小批量梯度下降法

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

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

相关文章

2023上半年工作总结

目录 一、目标达成情况总结: 二、工作/学习成果总结: 三、下半年规划总结: 一、目标达成情况总结: 其实我并没有给自己定多少目标,特别上长期的目标很少制定,总体来说2023年上班过的很平淡,波…

FPGA——点亮led灯

文章目录 一、实验环境二、实验任务三、实验过程3.1 编写verliog程序3.2 引脚配置 四、仿真4.1 仿真代码4.2仿真结果 五、实验结果六、总结 一、实验环境 quartus18.1 vscode Cyclone IV开发板 二、实验任务 每间隔1S实现led灯的亮灭,实现流水灯的效果。 三、实…

如何实现CAN-SOME/IP通信路由测试

区别于基于UDP的车内通信路由,基于SOME/IP协议的路由增加了服务发现(Service Discovery)和服务发布(Service Publish),那对于测试工程师来说,怎么实现CAN-SOME/IP路由的测试呢? 01 …

开放式耳机的类型有哪些?开放式耳机有什么优点?本文章为你讲解

伴随着开放式耳机越来越受大家欢迎,很多人还不知道开放式耳机是什么,有哪些好用的,有哪些优点,就直接入手了,结果踩雷了!面对这些常见问题,我来跟大家一一讲解开放式耳机热门问题。 1.开放式耳…

【C#】并行编程实战:同步原语(3)

在第4章中讨论了并行编程的潜在问题,其中之一就是同步开销。当将工作分解为多个工作项并由任务处理时,就需要同步每个线程的结果。线程局部存储和分区局部存储,某种程度上可以解决同步问题。但是,当数据共享时,就需要用…

浅谈企业能源管理系统在水泥企业的设计与应用

安科瑞 华楠 摘要: 水泥企业是我国高能耗行业之一,一直是政府推进节能减排工作的控制对象。建立企业能源管理系统,实现从能源因素采集、过程监控、能耗管理控制全过程的自动化、科学化管理。加大能源的合理化使用,减少能源消耗,对…

UE初级-C++基础-1.类库简介及目录结构

原文链接:UE5 C教程(一、基本结构)_skycol的博客-CSDN博客 原文链接:UE4C学习篇(一)_卡西莫多说的博客-CSDN博客 一.类库简介 虚幻API由三部分组成,分别是Runtime, Developer utilitiew&#…

门票售罄+酒店满房+营收创新高 原拓·非遗嘉年华战报来袭

7月2日,原拓非遗文化嘉年华首站在北京圆满落幕。作为原拓酒店创立的品牌活动IP,原拓非遗文化嘉年华携手非遗传承人、艺术创作者、文创品牌等志同道合的伙伴,在酒店空间呈现丰富体验,通过 DIY 工作坊、创意市集等方式,让…

【机器人模拟-02】 模拟移动机器人设置里程计

一、说明 在本教程中,我将向您展示如何设置移动机器人的测程。本教程是“机器人模拟”指南中的第二个教程。测量位移是仿真中的重要内容,设置测程的官方教程在此页面上,但我将逐步引导您完成整个过程。 您可以在此处获取此项目的完整代码。让我们开始吧! 二、ROS 2 中的里程…

MySQL查询数据库、表以及表行数所占内存大小

前言 在开发中我们想知道某个数据库,或者某个数据表的内存大小,那么怎么查询呢?下面通过简单示例一一介绍,希望对您有所帮助。 某表每行所占字节数 SELECT TABLE_NAME , CONCAT((DATA_LENGTH + INDEX_LENGTH), 字节) AS 每行占用字节数 FROM information_schema.TAB…

高并发的哲学原理(六)-- 拆分网络单点(下):SDN 如何替代百万人民币的负载均衡硬件

上一篇文章的末尾,我们利用负载均衡器打造了一个五万 QPS 的系统,本篇文章我们就来了解一下负载均衡技术的发展历程,并一起用 SDN(软件定义网络)技术打造出一个能够扛住 200Gbps 的负载均衡集群。 负载均衡发展史 F5 …

备战秋招 | 笔试强训4

目录 一、选择题 二、编程题 三、选择题题解 四、编程题题解 一、选择题 1、有以下程序&#xff0c;程序运行后的输出结果是&#xff08;&#xff09; #include<iostream> #include<cstdio> using namespace std; int main() {int m0123, n123;printf(&quo…

【LeetCode: 931. 下降路径最小和 | 暴力递归=>记忆化搜索=>动态规划 】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

中国8K摄像机厂家加入国际广电设备制造商协会IABM

近日&#xff0c;BOSMA博冠正式成为国际广电设备制造商协会IABM会员&#xff0c;标志着中国8K摄像机厂家BOSMA博冠在广播电视超高清前端采集领域受到全球广电权威机构认可&#xff0c;进一步推动国产品牌在全球市场竞争中提升品牌知名度、加强行业影响力。 IABM创立于1976年&am…

【Unity面试篇】Unity 面试题总结甄选 |C#基础篇 | ❤️持续更新❤️

前言 关于Unity面试题相关的所有知识点&#xff1a;&#x1f431;‍&#x1f3cd;2023年Unity面试题大全&#xff0c;共十万字面试题总结【收藏一篇足够面试&#xff0c;持续更新】为了方便大家可以重点复习某个模块&#xff0c;所以将各方面的知识点进行了拆分并更新整理了新…

android更换开机动画

android11 路径&#xff1a;device / {vendor-name} / {platform-name} / {device-name} / system / bootanimation.zip 例&#xff1a;android \ device \ softwinner \ ceres \ ceres-b6 \ system \ bootanimation.zip android13 路径&#xff1a;device / softwinner / {PRO…

2023年最全最新的学习课程合集

WEB前端入门&#xff1a;从零开始做网站。 完成所有课堂练习就可以做出自己的作品&#xff0c;并掌握数据库和了解开源项目。 这些课程涵盖了HTML、CSS和JavaScript等前端技术&#xff0c;以及与之相关的设计原则和最佳实践。 前端课程的目标是培养学生在网页开发方面的技能…

uniCloud

uniCloud 一、介绍1.新建项目2.初识云函数 二、数据库1.在云控制台操作数据库2.通过云函数对数据库进行操作&#xff08;1&#xff09;查询&#xff08;2&#xff09;修改&#xff08;3&#xff09;删除 3.客户端操作4.JQL语法 三、云函数四、云对象五、云存储六、uni-id七、扩…

2023年7月深圳软考中级系统集成项目管理工程师报名

系统集成项目管理工程师是全国计算机技术与软件专业技术资格&#xff08;水平&#xff09;考试&#xff08;简称软考&#xff09;项目之一&#xff0c;是由国家人力资源和社会保障部、工业和信息化部共同组织的国家级考试&#xff0c;既属于国家职业资格考试&#xff0c;又是职…

EasyCVR接口调用正常,但快照不显示是什么原因?

有用户反馈&#xff0c;现场部署了EasyCVR v3.1版本&#xff0c;将设备通过国标GB28181协议接入到平台&#xff0c;但是页面没有显示出快照&#xff0c;请求我们协助排查。 针对用户的反馈&#xff0c;我们立即排查。排查后发现&#xff0c;视频播放是正常的&#xff0c;调用接…