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

机器学习 | 回归算法原理——多项式回归

Hi,大家好,我是半亩花海。接着上次的最速下降法(梯度下降法)继续更新《白话机器学习的数学》这本书的学习笔记,在此分享多项式回归这一回归算法原理。本章的回归算法原理基于《基于广告费预测点击量》项目,欢迎大家交流学习!

目录

一、多项式回归概述

二、案例分析

1. 设置问题

2. 定义模型

3. 多项式回归


一、多项式回归概述

多项式回归是一种基于多项式函数的回归分析方法,用于拟合数据中的非线性关系。与简单的线性回归不同,多项式回归通过引入多项式项来建模数据的非线性特征,从而提高了模型的灵活性和适用性。


二、案例分析

1. 设置问题

还记得前两节我们定义的用于预测的一次函数吗?

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

因为是一次函数,所以它的图像是直线。

不过,对于一开始我在图中添加的数据点来说,直线一定是最好的拟合方式吗?曲线拟合的效果会更好吗?

2. 定义模型

通过清晰直观地观察下图,并经过探索我们会发现,其实曲线相对来说会比直线拟合得更好

如此看来,曲线似乎看起来更拟合数据。在此,我们可以把 f_\theta(x) 定义为二次函数,便能用它来表示这条曲线,如下所示:

f_\theta(x)=\theta_0+\theta_1 x+\theta_2 x^2

再或者,用更大次数的表达式也可以。这样就能表示更复杂的曲线了,如下所示:

f_\theta(x)=\theta_0+\theta_1 x+\theta_2 x^2+\theta_3 x^3+\cdots+\theta_n x^n

在找出最合适的表达式之前,需要不断地去尝试。当然这里有个误区,并不是说函数次数越大,拟合得就越好,难免也会出现过拟合的问题(在深度学习中会接触到)。

3. 多项式回归

回到我们定义的二次函数中,我们增加了 \theta _2 这个参数,接下来得需要推导出 \theta _2 更新表达式,和上一节《机器学习 | 回归算法原理——最速下降法(梯度下降法)-CSDN博客》里面的原理一样,用目标函数对 \theta _2 进行偏微分便就能求出来。

u=E(\theta)v=f_\theta(x),再将 u\theta _2 偏微分,求出更新表达式。 uv 微分即 \frac{\partial u}{\partial v} 的部分应该和前一节里的求法是一样的,如下式。

\begin{aligned} \frac{\partial u}{\partial v} & =\frac{\partial}{\partial v}\left(\frac{1}{2} \sum_{i=1}^n\left(y^{(i)}-v\right)^2\right) \\ & =\frac{1}{2} \sum_{i=1}^n\left(\frac{\partial}{\partial v}\left(y^{(i)}-v\right)^2\right) \\ & =\frac{1}{2} \sum_{i=1}^n\left(\frac{\partial}{\partial v}\left(y^{(i)^2}-2 y^{(i)} v+v^2\right)\right) \\ & =\frac{1}{2} \sum_{i=1}^n\left(-2 y^{(i)}+2 v\right) \\ & =\sum_{i=1}^n\left(v-y^{(i)}\right) \end{aligned}

所以我们只要求 v 对 \theta _2 的微分即可,如下式。

\begin{aligned} \frac{\partial v}{\partial \theta_2} & =\frac{\partial}{\partial \theta_2}\left(\theta_0+\theta_1 x+\theta_2 x^2\right) \\ & =x^2 \end{aligned}

得出最终的参数更新表达式如下所示:

\begin{aligned} & \theta_0:=\theta_0-\eta \sum_{i=1}^n\left(f_\theta\left(x^{(i)}\right)-y^{(i)}\right) \\ & \theta_1:=\theta_1-\eta \sum_{i=1}^n\left(f_\theta\left(x^{(i)}\right)-y^{(i)}\right) x^{(i)} \\ & \theta_2:=\theta_2-\eta \sum_{i=1}^n\left(f_\theta\left(x^{(i)}\right)-y^{(i)}\right) x^{(i)^2} \end{aligned}

那么即使增加参数,比如有 \theta _3\theta _4 等,我们依然可以用同样的的方法求出它们的更新表达式。像这样增加函数中多项式的次数,然后再使用函数的分析方法(偏微分)被称为多项式回归

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 网络学习|如何理解服务的端口号
  • Jenkins+Gitlab持续集成综合实战
  • 基于HAL库的stm32的OLED显示屏显示(IIC)
  • 深入Mysql-03-MySQL 表的约束与数据库设计
  • c++笔记2
  • 黑马JavaWeb企业级开发(知识清单)01——前端介绍,HTML实现标题:排版
  • 【Jupyter Notebook】一文详细向您介绍 【重启内核】
  • AIX下编译静态库问题--笔记
  • Stage模型应用程序包结构
  • 基于SpringBoot的矩形范围面时空分析-以震中附近历史地震为例
  • ModuleNotFoundError: No module named ‘scrapy.utils.reqser‘
  • 20分钟上手新版Skywalking 9.x APM监控系统
  • 【工具】轻松转换JSON与Markdown表格——自制Obsidian插件
  • C#调用OpenCvSharp实现图像的角点检测
  • Leetcode—426. 将二叉搜索树转化为排序的双向链表【中等】Plus
  • 【Amaple教程】5. 插件
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • 10个确保微服务与容器安全的最佳实践
  • Android框架之Volley
  • CentOS7简单部署NFS
  • download使用浅析
  • java正则表式的使用
  • Linux gpio口使用方法
  • PHP的类修饰符与访问修饰符
  • React+TypeScript入门
  • Redash本地开发环境搭建
  • vue.js框架原理浅析
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 高性能JavaScript阅读简记(三)
  • 给第三方使用接口的 URL 签名实现
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 学习笔记TF060:图像语音结合,看图说话
  • 移动端 h5开发相关内容总结(三)
  • 06-01 点餐小程序前台界面搭建
  • 大数据全解:定义、价值及挑战
  • # 飞书APP集成平台-数字化落地
  • # 数论-逆元
  • #android不同版本废弃api,新api。
  • #Datawhale AI夏令营第4期#AIGC方向 文生图 Task2
  • (12)Linux 常见的三种进程状态
  • (3)llvm ir转换过程
  • (Java入门)学生管理系统
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (数据大屏)(Hadoop)基于SSM框架的学院校友管理系统的设计与实现+文档
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)一些感悟
  • . Flume面试题
  • .mysql secret在哪_MYSQL基本操作(上)
  • .Net 4.0并行库实用性演练
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NET IoC 容器(三)Autofac