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

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

目录

一、最小二乘法概述

二、案例分析

[1. 设置问题](#1. 设置问题)

[2. 定义模型](#2. 定义模型)

[3. 最小二乘法](#3. 最小二乘法)


一、最小二乘法概述

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


二、案例分析

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

1. 设置问题

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

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

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

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

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

2. 定义模型

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

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

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

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

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

这说明我们刚才确定的参数 完全不正确。 接下来我们就要使用机器学习来求出正确的 的值。

3. 最小二乘法

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

其中, 表达式为:

其次, 中的 i 不是 i 次幂 的意思,而是指第 i 个训练数据

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

我们实际来计算一下表达式 的值吧。设 , 然后将刚才列举的 4 个训练数据代入表达式。求出来的误差有点大......

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

相关推荐
kebidaixu1 天前
两轮BMS 防打火策略详解
算法
wabs6661 天前
关于动态规划【力扣1035.不相交的线和53.最大子数组和的思考】
算法·leetcode·动态规划
退休倒计时1 天前
【每日一题】LeetCode 199. 二叉树的右视图 TypeScript
算法·leetcode·typescript
可编程芯片开发1 天前
通过MATLAB实现PID控制器,积分分离控制器以及滑模控制器
算法
kebidaixu1 天前
两轮BMS 短路保护策略详解
算法
zwenqiyu1 天前
非线性字符串数据结构串讲
数据结构·c++·学习·算法
z小猫不吃鱼1 天前
03 Optimal Brain Surgeon 详解:Hessian 剪枝为什么有效?
算法·机器学习·剪枝
硕风和炜1 天前
【LeetCode: 1301. 最大得分的路径数目 + DP】
java·算法·leetcode·动态规划·dp·记忆化搜索
用户99045017780091 天前
做了一个AI诊断,参考倪海厦中医理论,科学养生
算法
努力中的编程者1 天前
STL-vector的模拟实现
开发语言·c++·算法·stl·vector