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

机器学习:多项式拟合分析中国温度变化与温室气体排放量的时序数据

文章目录

    • 1、前言
    • 2、定义及公式
    • 3、案例代码
      • 1、数据解析
      • 2、绘制散点图
      • 3、多项式回归、拟合
      • 4、注意事项

1、前言

​ 当分析数据时,如果我们找的不是直线或者超平面,而是一条曲线,那么就可以用多项式回归来分析和预测。

2、定义及公式

​ 多项式回归可以写成:
Y i = β 0 + β 1 X i + β 2 X i 2 + . . . + β k X i k Y_{i} = \beta_{0} +\beta_{1}X_{i}+\beta_{2}X_{i}^2+...+\beta_{k}X_{i}^k Yi=β0+β1Xi+β2Xi2+...+βkXik
​ 例如二次曲线:
Y = a X + b X 2 + c Y=aX+bX^2+c Y=aX+bX2+c

3、案例代码

1、数据解析

​ 首先有1961年至2017年我国地表温度变化和温室气体排放量的时间序列数据,前十条数据如下。

tempemissions
0.2575635838102
-0.1426075180207
0.2886510697811
-0.0286946401541
0.0767421082166
0.187942541079
-0.2868374764636
-0.4148842570279
-0.229418514950

2、绘制散点图

​ 对于该数据我们先通过绘制散点图,这可以看出该数据适用于什么模型。

import matplotlib.pyplot as plt
import xlrd
import numpy as np
# 载入数据,打开excel文件
ExcelFile = xlrd.open_workbook("sandian.xls")
sheet1 = ExcelFile.sheet_by_index(0)
x = sheet1.col_values(0)
y = sheet1.col_values(1)
# 将列表转换为matrix
x = np.matrix(x).reshape(48, 1)
y = np.matrix(y).reshape(48, 1)# 划线y
plt.title("Epidemic and Dow Jones data analysis")
plt.xlabel("new cases")
plt.ylabel("Dow Jones Volume")
plt.plot(x, y, 'b.')
plt.show()

在这里插入图片描述

​ 上述使用xlrd方式不建议使用,简单了解即可,正常我们会使用下述更为方便且稳定的pandas来读取csv文件,这会大大简洁我们的代码并减少工作量。当然结果也是一样的。

import matplotlib.pyplot as plt
import numpy as np
import pandas as pdx = pd.read_csv('china.csv')['emissions']
y = pd.read_csv('china.csv')['temp']
# 划线y
plt.title("temp and emission")
plt.xlabel("emissions change")
plt.ylabel("temp change")
plt.plot(x, y, 'b.')
plt.show()

​ 如图所示很明显,在排放量变化达到1.5(1e11)时,斜率发生了改变,因此我们可以判断这是一个多项式模型。

3、多项式回归、拟合

​ 通过散点图的趋势,我们首先选择拟合3次来防止过拟合和欠拟合。

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from sklearn.metrics import r2_score
from matplotlib.font_manager import FontProperties  # 导入FontPropertiesfont = FontProperties(fname="simhei.ttf", size=14)  # 设置字体
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] =Falsex = pd.read_csv('china.csv')['emissions']
y = pd.read_csv('china.csv')['temp']# 进行多项式拟合(这里选取3次多项式拟合)
z = np.polyfit(x, y, 3) # 用3次多项式拟合# 获取拟合后的多项式
p = np.poly1d(z)
print(p)  # 在屏幕上打印拟合多项式# 计算拟合后的y值
yvals=p(x)# 计算拟合后的R方,进行检测拟合效果
r2 = r2_score(y, yvals)
print('多项式拟合R方为:', r2)# 计算拟合多项式的极值点。
peak = np.polyder(p, 1)
print(peak.r)# 画图对比分析
plot1 = plt.plot(x, y, '*', label='初始值', color='red')
plot2 = plt.plot(x, yvals, '-', label='训练值', color='blue',linewidth=2)plt.xlabel('温室气体排放量',fontsize=13, fontproperties=font)
plt.ylabel('温度变化',fontsize=13, fontproperties=font)
plt.legend(loc="best")
plt.title('中国温室气体排放量与地表温度变化的关系')
plt.show()

​ 最后结果如下图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-go17Atvf-1681182766850)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230411105218629.png)]

           3             2
3.002e-34 x - 1.351e-22 x + 2.284e-11 x - 0.2613
多项式拟合R方为: 0.7468687074304835
[1.50000065e+11+5.34488173e+10j 1.50000065e+11-5.34488173e+10j]

​ 我们发现,这并不符合我们的预期,因为温室气体排放量在1.5(1e11)时,散点图趋势有明显的凹陷,而使用三次拟合并不能让曲线拟合到散点上。所以我们将 z = np.polyfit(x, y, 4)中的3改为4,来进行四次拟合。
在这里插入图片描述

​ 这样就达到了我们的预期效果,并输出我们的多项式回归公式。

           4             3             2
1.702e-44 x - 6.273e-33 x + 6.634e-22 x - 9.696e-12 x + 0.03595
多项式拟合R方为: 0.7962406171380259
[1.60734484e+11 1.07514523e+11 8.24309615e+09]

​ 我们可以得到数学模型:
Y = 1.702 ∗ 1 0 − 44 X − 6.273 ∗ 1 0 − 33 X + 6.634 ∗ 1 0 − 22 X − 9.696 ∗ 1 0 − 12 X + 0.03595 Y=1.702*10^{-44}X -6.273*10^{-33}X + 6.634*10^{-22}X-9.696*10^{-12}X +0.03595 Y=1.7021044X6.2731033X+6.6341022X9.6961012X+0.03595

4、注意事项

from matplotlib.font_manager import FontProperties  # 导入FontProperties
font = FontProperties(fname="simhei.ttf", size=14)  # 设置字体
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] =False

​ 这些代码用于显示汉字标题,这需要你的本机中有一个汉字字体文件,simhei.ttf或其他字体文件。

​ 如果需要引入,在第二行中指定文件路径。

相关文章:

机器学习:多项式拟合分析中国温度变化与温室气体排放量的时序数据

文章目录 1、前言2、定义及公式3、案例代码1、数据解析2、绘制散点图3、多项式回归、拟合4、注意事项 1、前言 ​ 当分析数据时,如果我们找的不是直线或者超平面,而是一条曲线,那么就可以用多项式回归来分析和预测。 2、定义及公式 ​ 多项…...

一个 24 通道 100Msps 逻辑分析仪

这是一个创建非常便宜的逻辑分析仪的项目,但其功能可与昂贵的商业分析仪相媲美。该分析仪可以以每秒 1 亿个样本的最高速度对多达 24 个通道进行采样,并且可以通过单个通道中的极性变化或多达 16 个通道形成的模式来触发。 该项目不仅包含硬件&#xff0…...

使用Process Explorer和Dependency Walker排查C++程序中dll库动态加载失败问题

目录 1、exe主程序启动时的库加载流程说明 2、加载dll库两种方式 2.1、dll库的隐式引用...

网工Python:如何使用Netmiko的SCP函数进行文件传输?

在网络设备管理中,传输配置文件、镜像文件等是经常需要进行的操作。Netmiko是一个Python库,可用于与各种网络设备进行交互,提供了一些用于传输文件的函数,其中包括SCP(Secure Copy Protocol)函数。本文将介…...

题目 3166: 蓝桥杯2023年第十四届省赛真题-阶乘的和--不能完全通过,最好情况通过67.

原题链接: 题目 3166: 蓝桥杯2023年第十四届省赛真题-阶乘的和 https://www.dotcpp.com/oj/problem3166.html 致歉 害,首先深感抱歉,这道题还是没有找到很好的解决办法。目前最好情况就是67分。 这道题先这样跳过吧,当然以后还…...

ChatGPT- OpenAI 的 模型(Model) 介绍

ChatGPT的火爆程度大家都知道了,该章节我们来了解一下 ChatGPT 一个关键概念 - 模型(Model)。主要是为大家介绍一下在 OpenAI 中,究竟有哪些模型可以使用。 在后续的章节,我们会分单独的小章节逐一的为大家介绍各个不同模型的调用以及接口参…...

X 态及基于 VCS 的 X-Propagation 检测

🔥点击查看精选 IC 技能树系列文章🔥 🔥点击进入【芯片设计验证】社区,查看更多精彩内容🔥 📢 声明: 🥭 作者主页:【MangoPapa的CSDN主页】。⚠️ 本文首发于CSDN&#…...

数据库之事务隔离级别详解

事务隔离级别详解 一、事务的四大特性(ACID)1. 原子性(atomicity):2. 一致性(consistency):3. 隔离性(isolation):4. 持久性(durability): 二、事务的四种隔离级别1. 读未提交(Read uncommitted)&#xff1…...

守护进程、僵尸进程、孤儿进程

守护进程、僵尸进程、孤儿进程 守护进程(Daemon Process) 定义 守护进程又称Daemon进程(精灵进程),是Linux中的后台服务进程。 它的生命周期较长,通常独立于控制终端并且周期性地执行某种任务或者等待处…...

软件设计师笔记

软件设计师笔记 计算机组成与体系结构 数据的表示、计算机结构、Flynn分类法、CISC与RISC、流水线技术、存储系统、总线系统、可靠性、校验码 1. 数据的表示 (一)进制转换 R进制转十进制使用按权展开法: 十进制转R进制使用短除法 二进制…...

4_用dockerfile制作镜像

Docker 镜像原理 思考: Docker 镜像本质是什么? Docker 中一个centos镜像为什么只有200MB,而一个centos操作系统的iso文件要几个个G? Docker 中一个tomcat镜像为什么有500MB,而一个tomcat安装包只有70多MB&#xff…...

肝一肝设计模式【四】-- 建造者模式

系列文章目录 肝一肝设计模式【一】-- 单例模式 传送门 肝一肝设计模式【二】-- 工厂模式 传送门 肝一肝设计模式【三】-- 原型模式 传送门 肝一肝设计模式【四】-- 建造者模式 传送门 文章目录 系列文章目录前言一、什么是建造者模式二、举个栗子三、静态内部类写法四、开源框…...

从设计到产品

从设计到产品 最近上的一些课的笔记,从 0 开始设计项目的角度去看产品。 设计系统 设计系统(design system) 不是 系统设计(system design),前者更偏向于 UI/UX 设计部分,后者更偏向于实现部分。 个人觉得,前端开发与 UI/UX 设…...

《疯狂Python讲义》值传递的细节

函数的参数包含着整个程序的规范性,之前还是没有那么去注意重要的细节,读完书中函数值传递篇章,还是有所收获的。 参数有两种形式,一种是形参一种是实参,形参可以理解为实参的载体,函数当中的关键词也是描…...

【7. ROS 中的 IMU 惯性测量单元消息包】

欢迎大家阅读2345VOR的博客【6. 激光雷达接入ROS】🥳🥳🥳 2345VOR鹏鹏主页: 已获得CSDN《嵌入式领域优质创作者》称号👻👻👻,座右铭:脚踏实地,仰望星空&#…...

pcie m.2固态硬盘装机后无法识别到启动盘

1、第一种情况《系统版本过低》 原因: 使用m.2固态硬盘的电脑,最好安装iwn8.1以上的系统,因为win7系统及其win xp系统 没有自带NVME驱动。 搞定办法: 比较简单的方式就是直接开运行快启动u盘启动盘制作工具将系统升级到win10系…...

Java Web应用开发 ——第四章:JavaBean技术测验

一.单项选择题&#xff08;共13题,55.9分&#xff09; 1 在 JSP 中调用 JavaBean 时不会用到的标记是&#xff1a;&#xff08; &#xff09; A、 < jsp:javabean> B、 < jsp:useBean> C、 < jsp:setProperty> D、 < jsp:getProperty> 正确答案&a…...

CTF权威指南 笔记 -第二章二进制文件- 2.4 -动态链接

目录 静态文件的缺点 动态链接 位置无关代码 延迟绑定 _dl_runtime_reslove 函数定义 深入审视 静态文件的缺点 随着可执行文件的增加 静态链接带来的浪费空间问题就会愈发严重 如果大部分可执行文件都需要glibc 那么在链接的时候就需要把 libc.a链接进去 如果一个libc…...

C++:计算机操作系统:多线程:高并发中的线程

高并发中的线程 一切要从CPU说起PC 程序计数器从CPU到操作系统从进程到线程 从这篇开始&#xff0c;我将会开启高性能&#xff0c;高并发系列&#xff0c;本篇是给系列的开篇&#xff0c;主要关注 多线程以及线程池。 一切要从CPU说起 你可能会有疑问&#xff0c;讲多线程为何…...

大数据Doris(十一):Aggregate 数据模型

文章目录 Aggregate 数据模型 一、导入数据聚合 二、保留明细数据...

3分钟学会B站缓存视频永久保存:m4s-converter完整使用指南

3分钟学会B站缓存视频永久保存&#xff1a;m4s-converter完整使用指南 【免费下载链接】m4s-converter 一个跨平台小工具&#xff0c;将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾经在B站缓存了珍贵…...

PDF怎么转Word不变形?2026保留原排版方法与软件推荐

PDF转Word时遇到排版错乱是许多办公人士的共同困扰。无论是报告、合同还是设计稿&#xff0c;排版混乱往往意味着需要重新手工调整&#xff0c;浪费大量时间。本文整合了2026年最实用的PDF转Word保留原排版方法&#xff0c;以及各类软件工具的详细对比&#xff0c;帮助你快速找…...

5分钟上手TegraRcmGUI:Windows平台最简单的Switch注入工具终极指南

5分钟上手TegraRcmGUI&#xff1a;Windows平台最简单的Switch注入工具终极指南 【免费下载链接】TegraRcmGUI C GUI for TegraRcmSmash (Fuse Gele exploit for Nintendo Switch) 项目地址: https://gitcode.com/gh_mirrors/te/TegraRcmGUI TegraRcmGUI是专为Nintendo S…...

graph-autofusion:CANN 的自动算子融合引擎

GE 的图优化 pass 里&#xff0c;算子融合是对推理性能影响最大的一个。但 GE 的融合规则是硬编码的——ConvBNReLU 写一条规则&#xff0c;BMMSoftmaxBMM 写一条规则。规则多了维护成本直线上升&#xff0c;总有覆盖不到的融合场景。 graph-autofusion 解决了这个问题。它是一…...

人工智能学习之归一化和标准化的区别

归一化与标准化&#xff08;机器学习核心预处理笔记&#xff09; 核心前提&#xff1a;机器学习中&#xff0c;特征的量纲&#xff08;单位&#xff09;可能差异极大&#xff08;如&#xff1a;身高cm、体重kg、收入万元&#xff09;&#xff0c;会导致模型&#xff08;如KNN、…...

Qt项目实战:用CryptoPP库给本地配置文件做AES加密(C++保姆级教程)

Qt项目实战&#xff1a;用CryptoPP库实现本地配置文件AES加密&#xff08;C完整指南&#xff09; 在桌面应用开发中&#xff0c;配置文件的安全性常常被忽视。想象一下&#xff0c;当用户打开你的应用目录&#xff0c;轻易就能用记事本查看到数据库密码或API密钥——这种赤裸裸…...

阿里云ECS新手避坑指南:搞定校园网、安全组和SSH端口映射(附XShell连接测试)

阿里云ECS新手全流程配置手册&#xff1a;从安全组到SSH连接的深度实践 第一次接触云服务器时&#xff0c;那种既兴奋又忐忑的心情我至今记忆犹新。看着控制台里各种陌生的术语和选项&#xff0c;明明按照教程一步步操作却总是卡在连接阶段&#xff0c;这种经历想必不少技术爱好…...

基于CW32F003 MCU的无线快充方案:一芯双充设计与工程实践

1. 项目概述&#xff1a;当CW32F003遇上无线快充作为一名在嵌入式领域摸爬滚打了十多年的老工程师&#xff0c;我见过太多项目从构想到落地的全过程。最近几年&#xff0c;无线充电市场可以说是“卷”出了新高度&#xff0c;从最初的5W“慢充”到如今动辄50W、100W的“秒充”&a…...

【限时解密】Perplexity写作辅助底层架构图首次公开:基于逆向分析的7大能力边界与替代方案评估

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;Perplexity写作辅助功能的定位与核心价值 Perplexity并非传统意义上的语法校对工具或模板生成器&#xff0c;而是一个以“问题驱动、证据锚定”为核心范式的智能写作协作者。它将用户输入的写作任务自动解构为…...

PPTXjs终极指南:3分钟学会在浏览器中完美预览PPTX文件

PPTXjs终极指南&#xff1a;3分钟学会在浏览器中完美预览PPTX文件 【免费下载链接】PPTXjs jquery plugin for convertation pptx to html 项目地址: https://gitcode.com/gh_mirrors/pp/PPTXjs 还在为PPT文件兼容性问题烦恼吗&#xff1f;当精心制作的演示文稿在不同设…...