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

机器学习 | 回归算法原理——最小二乘法

Hi,大家好,我是半亩花海。很早便想学习并总结一本很喜欢的机器学习图书——立石贤吾的《白话机器学习的数学》,可谓通俗易懂,清晰形象。那就在此分享并作为学习笔记来记录我的学习过程吧!本章的回归算法原理基于《基于广告费预测点击量》项目,欢迎大家交流学习!

目录

一、最小二乘法概述

二、案例分析

1. 设置问题

2. 定义模型

3. 最小二乘法


一、最小二乘法概述

最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和min E(\theta))寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法同梯度下降类似,都是一种求解无约束最优化问题的常用方法,并且也可以用于曲线拟合,来解决回归问题。


二、案例分析

下面根据《基于广告费预测点击量》这一项目展开最小二乘法的介绍和分析。

1. 设置问题

假设存在这样一个前提:投入的广告费越多,广告的点击量就越高,进而带来访问数的增加。这样看这种假设类似于线性关系,但实际上两者之间未必是简单的线性关系

根据广告费和实际点击量的对应关系数据,可以将两个变量用下面的图展示出来,如下图(图中的值是随便选的)。

我们看着这张图可以猜猜,如果花了200日元的广告费,广告的点击量会是多少呢?通过探索估计,大概在500次左右吧。

这就是机器学习。我们所做的事情正是从数据中进行学习,然后给出预测值。接下来我们就要使用机器学习,像我们刚才做的那样尝试进行根据广告费预测点击量的任务

当然,实际要使用机器学习来解决的问题都会更复杂,很多问题无法像这样画出图来。现在我们为了加深理解才用了这样一个简单的例子,后面的例子会越来越难的。

2. 定义模型

那我们如何应用机器学习呢?就刚刚的例子,如下图所示,我们可以把图想象为函数。只要知道通过图中各点的函数的形式就能根据广告费得知点击量了。但是点击量经常变化,这叫作“点击量中含有噪声”,所以函数并不能完美地通过所有的点。

这样看便是我们初中便学过的一次函数,考虑到后面的学习(为了防止当未知数增加时,表达式中大量出现 a、b、c、d…这样的符号),我们常常使用如下的\theta + 数字下标”的形式来表示未知数和推测值,进而定义一次函数的表达式。

y=\theta_0+\theta_1 x

比如,我们先任取两个数作为 \theta_{0}\theta_{1},假设 \theta_{0} =1\theta_{1} =2,那么当广告费为 100 日元时,点击量的计算过程如下:

y = 1 + 2x = 1 + 2 \times 100 = 201

函数 y = 1 + 2x 的部分点信息如下:

但实际上我们再看一下刚才的图会发现,如果广告费为 100 日元,那 么点击量应该大于 400。

这说明我们刚才确定的参数 \theta_{0} =1\theta_{1} =2 完全不正确。 接下来我们就要使用机器学习来求出正确的 \theta_{0} 和 \theta_{1}  的值。

3. 最小二乘法

假设有 n 个训练数据, 那么它们的误差之和可以用下面的表达式 E(\theta) 表示。这个表达式称为目标函数(其中,E(\theta) 的 E 是误差的英语单词 Error 的首字母)。(ps:计算误差般不用绝对值,而用平方。因为之后要对目标函数进行微分,比起绝对值,平方的微分更加简单。)

E(\theta)=\frac{1}{2} \sum_{i=1}^n\left(y^{(i)}-f_\theta\left(x^{(i)}\right)\right)^2

其中,f_\theta(x) 表达式为:

f_\theta(x)=\theta_0+\theta_1 x

其次,x^{(i)}y^{(i)} 中的 i 不是 i 次幂的意思,而是指第 i 个训练数据

再者,误差解释一下,如下图所示,图中的双向虚线箭头表示训练数据的点和 f_\theta(x) 图像的误差。

我们实际来计算一下表达式 f_\theta(x) 中 E(\theta) 的值吧。设 \theta_{0} =1\theta_{1} =2, 然后将刚才列举的 4 个训练数据代入表达式。求出来的误差有点大……

\begin{aligned} E(\theta) & =\frac{1}{2} \sum_{i=1}^4\left(y^{(i)}-f_\theta\left(x^{(i)}\right)\right)^2 \\ & =\frac{1}{2} \times\left((374-117)^2+(385-141)^2+(375-163)^2+(401-169)^2\right) \\ & =\frac{1}{2} \times(66049+59536+44944+53824) \\ & =112176.5 \end{aligned}

上述结果 112 176.5 这个值本身没有什么意义,我们要通过一些方法修改参数 \theta,如之后所学习的神经网络中的调参等方式,使得这个值变得越来越小。这种做法称为最小二乘法

相关文章:

机器学习 | 回归算法原理——最小二乘法

Hi,大家好,我是半亩花海。很早便想学习并总结一本很喜欢的机器学习图书——立石贤吾的《白话机器学习的数学》,可谓通俗易懂,清晰形象。那就在此分享并作为学习笔记来记录我的学习过程吧!本章的回归算法原理基于《基于…...

.NET Core 中的字符串压缩方法

字符串压缩的概念 字符串压缩通常指的是通过算法减少字符串表示所需的数据量,同时保持字符串的原始信息或能够无损地恢复原始字符串。这种压缩可以是针对文本数据的特定算法,也可以是更通用的数据压缩算法。 .NET Core 中的字符串压缩方法 使用数据压…...

SQL 基础知识

SQL(结构化查询语言)是一种用于管理和操作关系数据库的标准编程语言。以下是一些 SQL 的基础知识: 基本概念 数据库(Database): 存储和管理数据的容器。一个数据库可以包含多个表。 表(Table&…...

【数据结构初阶】单链表经典算法题十二道——得道飞升(上篇)

目录 1、移除元素 2、反转链表 3、链表的中间节点 4、合并两个有序链表 Relaxing Time!!! ———————————————— 天气之子幻 ———————————————— 1、移除元素 思路: 创建一个新链表&#xff0…...

Python爬虫技术 第16节 XPath

XPath是一种在XML文档中查找信息的语言,尽管XML和HTML在语法上有区别,但XPath同样适用于HTML文档的解析,尤其是在使用如lxml这样的库时。XPath提供了一种强大的方法来定位和提取XML/HTML文档中的元素和属性。 XPath基础 XPath表达式由路径表…...

本地部署,Whisper: 开源语音识别模型

目录 简介 特点 应用 使用方法 总结 GitHub - openai/whisper: Robust Speech Recognition via Large-Scale Weak SupervisionRobust Speech Recognition via Large-Scale Weak Supervision - openai/whisperhttps://github.com/openai/whisper 简介 Whisper 是一个由 O…...

history,hash缓存那些事

vue-router 中的 createWebHistory,createWebHashHistory两种模式 createWebHistory 是基于 window.history 对象是HTML5提供的用于维护当前标签页浏览历史的对象,主要功能是前进后退和在不刷新页面的情况下,修改地址栏里的URL地址。histor…...

Spring Boot的Web开发

目录 Spring Boot的Web开发 1.静态资源映射规则 第一种静态资源映射规则 2.enjoy模板引擎 3.springMVC 3.1请求处理 RequestMapping DeleteMapping 删除 PutMapping 修改 GetMapping 查询 PostMapping 新增 3.2参数绑定 一.支持数据类型: 3.3常用注解 一.Request…...

Spark 解析嵌套的 JSON 文件

1、什么是嵌套的JSON文件? 嵌套的JSON文件是指文件中包含了嵌套的JSON对象或数组。例如,以下是一个嵌套的JSON文件的示例: {"name": "John","age": 30,"address": {"street": "123…...

VMware虚拟机中CentOS7自定义ip地址并且固定ip

配置固定ip(虚拟机) 前提:虚拟机网络配置成,自定义网络并选择VMnet8(NAT 模式) 操作(如下图):点击虚拟机–》设置–》–》硬件–》网络适配器–》自定义:特定虚拟网络–》选择:VMnet8(NAT 模式) 虚拟机网络设置 需要记…...

CCS(Code Composer Studio 10.4.0)编译软件中文乱码怎么解决

如果是所有文件都出现了中文乱码这时建议直接在窗口首选项中修改:选择"Window" -> "Preferences",找到"General" -> "Workspace",将"Text file encoding"选项设置为"Other&quo…...

Flutter 3 完全支持网页端

Flutter 3 可以用于开发网页端应用。自 Flutter 2.0 起,Flutter 就已经支持 Web 平台,并且在 Flutter 3 中得到了进一步的改进和优化。以下是使用 Flutter 3 开发网页端的一些优势和特点: Flutter 3 开发网页端的优势: 跨平台一致…...

vue.js入门

目录 一. 框架概述 二. vue常用命令 2.1 插值表达式 2.2 v-text 2.3 v-html 2.4 v-on 2.5 v-model 2.6 v-show 2.7 v-if 2.8 v-else 2.9 v-bind 2.10 v-for 三. vue生命周期函数 目录 一. 框架概述 二. vue常用命令 2.1 插值表达式 2.2 v-text 2.3 v-html 2…...

API签名认证

前言(项目背景): 这个API签名认证是API开放平台得一个重要环节,我们知道,这个API开发平台,用处就是给客户去调用现成得接口来完成某些事情得。 在讲API签名认证之前,我们先模拟一个场景并且介绍…...

C#进阶-基于.NET Framework 4.x框架实现ASP.NET WebForms项目IP拦截器

在这篇文章中,我们将探讨如何在 ASP.NET WebForms 中实现IP拦截器,以便在 ASMX Web 服务方法 和 HTTP 请求 中根据IP地址进行访问控制。我们将使用自定义的 SoapExtension 和 IHttpModule 来实现这一功能,并根据常用的两种文本传输协议&#…...

前端(1)HTML

1、标签 创建1.html文件&#xff0c;浏览器输入E:/frontheima/1.html&#xff0c;可以访问页面 页面展示 在VSCODE安装IDEA的快捷键&#xff0c;比如ctld复制一行、ctrlx剪切 <p id"p1" title"标题1">Hello,world!</p> <p id"p2"…...

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第三篇 嵌入式Linux驱动开发篇-第五十三章 设备树下的platform驱动

i.MX8MM处理器采用了先进的14LPCFinFET工艺&#xff0c;提供更快的速度和更高的电源效率;四核Cortex-A53&#xff0c;单核Cortex-M4&#xff0c;多达五个内核 &#xff0c;主频高达1.8GHz&#xff0c;2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…...

Java正则表达式判断有无特殊字符

//^代表否定&#xff0c;匹配除了数字、字母、下划线的特殊字符。 private static final String SPECIAL_CHAR_PATTERN "[^a-zA-Z0-9_]"; Pattern pattern Pattern.compile(SPECIAL_CHAR_PATTERN); Matcher matcher pattern.matcher(userAccount); // 如果 find(…...

使用Java和Spring AMQP构建消息驱动应用

使用Java和Spring AMQP构建消息驱动应用 大家好&#xff0c;我是微赚淘客系统3.0的小编&#xff0c;是个冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 消息驱动应用程序在现代系统架构中扮演着重要角色&#xff0c;特别是在处理高并发和异步任务时。Spring AMQ…...

【NLP】提升文本生成多样性的实用方法

比如用T5模型,训练数据是inputText-outputText格式,预测时do_sample=False # 预测代码from transformers import TFAutoModelForSeq2SeqLM from transformers import AutoTokenizercheckpoint_local = "./path/" tokenizer = AutoTokenizer.from_pretrained(check…...

LeetCode 283. Move Zeroes 题解

LeetCode 283. Move Zeroes 题解 题目描述 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 示例 1&#xff1a; 输入: nums [0,1,0,3,12] 输…...

FlexASIO音频优化实战指南:从延迟卡顿到高保真体验的转型方案

FlexASIO音频优化实战指南&#xff1a;从延迟卡顿到高保真体验的转型方案 【免费下载链接】FlexASIO A flexible universal ASIO driver that uses the PortAudio sound I/O library. Supports WASAPI (shared and exclusive), KS, DirectSound and MME. 项目地址: https://g…...

lite-avatar形象库保姆级教学:从CSDN控制台创建GPU实例到数字人上线全过程

lite-avatar形象库保姆级教学&#xff1a;从CSDN控制台创建GPU实例到数字人上线全过程 桦漫AIGC集成开发 | 微信: henryhan1117 1. 开篇&#xff1a;为什么选择lite-avatar形象库&#xff1f; 如果你正在寻找高质量的数字人形象&#xff0c;但又不想从零开始训练模型&#xff…...

基于STM32与ADS1258的高精度电流数据采集方案实现

1. 高精度电流采集系统设计思路 电流测量在工业自动化、新能源和车载电子等领域都是基础但关键的环节。传统方案使用普通ADC配合分压电阻&#xff0c;精度往往只能达到1%左右&#xff0c;而采用ADS1258这类24位Σ-Δ ADC&#xff0c;配合STM32主控&#xff0c;可以实现0.01%级的…...

Qwen2.5-VL-7B-Instruct保姆级:SSH远程部署+ngrok内网穿透共享演示

Qwen2.5-VL-7B-Instruct保姆级&#xff1a;SSH远程部署ngrok内网穿透共享演示 想不想在远程服务器上部署一个能“看图说话”的AI助手&#xff0c;还能随时随地通过网页访问它&#xff1f;今天&#xff0c;我就带你手把手搞定这件事。 我们将一起完成两个核心任务&#xff1a;…...

5分钟精通:phone2qq工具手机号查询QQ号全攻略

5分钟精通&#xff1a;phone2qq工具手机号查询QQ号全攻略 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq 在数字化办公与社交日益融合的今天&#xff0c;当你需要登录历史QQ账号却只记得绑定手机号时&#xff0c;如何快速建立数字身…...

AI产品经理崛起:技术人转型的新风口

技术浪潮下的职业新机遇人工智能&#xff08;AI&#xff09;技术的爆炸式发展正重塑全球产业格局&#xff0c;催生出一系列新兴职业。其中&#xff0c;AI产品经理&#xff08;AI PM&#xff09;作为连接技术与商业的桥梁&#xff0c;已成为当下最炙手可热的岗位。数据显示&…...

QLVideo终极指南:三步让Mac视频预览功能全面升级

QLVideo终极指南&#xff1a;三步让Mac视频预览功能全面升级 【免费下载链接】QuickLookVideo This package allows macOS Finder to display thumbnails, static QuickLook previews, cover art and metadata for most types of video files. 项目地址: https://gitcode.com…...

终极魔兽争霸III优化工具:WarcraftHelper完整配置指南

终极魔兽争霸III优化工具&#xff1a;WarcraftHelper完整配置指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 魔兽争霸III作为经典即时战略游戏&a…...

如何从WiringPi旧版本升级到3.18新架构:完整迁移指南

如何从WiringPi旧版本升级到3.18新架构&#xff1a;完整迁移指南 【免费下载链接】WiringPi Gordons Arduino wiring-like WiringPi Library for the Raspberry Pi (Unofficial Mirror for WiringPi bindings) 项目地址: https://gitcode.com/gh_mirrors/wi/WiringPi Wi…...