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

(九)机器学习 - 多项式回归

多项式回归(Polynomial Regression)是一种回归分析方法,它将自变量 xx 和因变量 yy 之间的关系建模为 nn 次多项式。多项式回归的目的是找到一个 nn 次多项式函数,使得这个函数能够最好地拟合给定的数据点。

多项式回归的数学表达式为:

其中:

  • yy 是因变量。
  • xx 是自变量。
  • β0,β1,…,βnβ0​,β1​,…,βn​ 是回归系数。
  • ϵϵ 是误差项,表示模型无法解释的随机误差。

多项式回归可以看作是线性回归的扩展,因为线性回归是 n=1n=1 时的特殊情况。当数据点之间的关系不是线性的,而是曲线时,多项式回归可以提供更好的拟合。

多项式回归的参数估计通常使用最小二乘法(Least Squares Method),该方法通过最小化误差项的平方和来找到最佳的回归系数。最小二乘法的数学表达式为:

 

其中 mm 是数据点的数量。

多项式回归模型的评估通常使用以下指标:

  • 决定系数(R-squared):表示模型解释的因变量的方差比例。
  • 调整后的决定系数(Adjusted R-squared):考虑了自变量数量对决定系数的影响。
  • 均方误差(Mean Squared Error, MSE):表示预测值与实际值之间的平均平方误差。
  • 均方根误差(Root Mean Squared Error, RMSE):MSE的平方根,表示预测值与实际值之间的平均误差。

例子: 

注册了 18 辆经过特定收费站的汽车。假设已经记录了汽车的速度和通过时间(小时)。

x 轴表示一天中的小时,y 轴表示速度:

Python 有一些方法可以找到数据点之间的关系并画出多项式回归线。

// 导入所需模块:
import numpy
import matplotlib.pyplot as plt// 创建表示 x 和 y 轴值的数组:
x = [1,2,3,5,6,7,8,9,10,12,13,14,15,16,18,19,21,22]
y = [100,90,80,60,60,55,60,65,70,70,75,76,78,79,90,99,99,100]// NumPy 有一种方法可以让我们建立多项式模型:
mymodel = numpy.poly1d(numpy.polyfit(x, y, 3))// 然后指定行的显示方式,我们从位置 1 开始,到位置 22 结束:
myline = numpy.linspace(1, 22, 100)// 绘制原始散点图:
plt.scatter(x, y)// 画出多项式回归线:
plt.plot(myline, mymodel(myline))// 显示图表:
plt.show()

结果:

http://www.lryc.cn/news/502825.html

相关文章:

  • Qt编写区位码gb2312、机内码、国标码————附带详细介绍和编码实现
  • linux网络编程 | c | epoll实现IO多路转接服务器
  • Source Insight的使用经验汇总
  • VSCode 报错:rust-analyzer requires glibc >= 2.28 in latest build
  • Android Link to Death 使用
  • 【C++游记】string的使用和模拟实现
  • DockerUI info存在未授权访问漏洞
  • SQL,查询每天最接近指定时间的记录
  • ElasticSearch如何做性能优化?
  • 【Linux】虚拟空间布局模型地址回填数据段合并(万字详解)
  • const和修饰指针的几种用法
  • mybatis事务的自动提交与手动提交
  • 网络安全协议之比较(SSH、PKI、SET、SSL)
  • Vue的生命周期方法
  • ISP和IQ调试(一)
  • c# TaskScheduler
  • 可视化数据
  • 【Redis】Redis缓存击穿
  • 厦门凯酷全科技有限公司深耕抖音电商运营
  • 六西格玛DMAIC在企业得项目管理中有什么作用
  • vscode借助插件调试OpenFoam的正确的.vscode配置文件
  • SpringBoot整合JWT(JSON Web Token)生成token与验证
  • 把帕拉丁需要的.rom文件转成.bin
  • Nginx 缓存那些事儿:原理、配置和最佳实践
  • vue发展史
  • 基于Java和Vue开发的校园跑腿软件校园跑腿小程序系统源码
  • MySQL(五)--- 事务
  • llm chat场景下的数据同步
  • 机器学习经典算法
  • Scala中的泛型