运用自回归滑动平均模型、灰色预测模型、BP神经网络三种模型分别预测全球平均气温,并进行预测精度对比(附代码、数据)

2023-11-04

        大家好,我是带我去滑雪,每天教你一个小技巧!全球变暖是近十年来,人们关注度最高的话题。2022年夏天,蔓延全球40℃以上的极端天气不断刷新人们对于高温的认知,人们再也不会像从前那样认为全球变暖离我们遥不可及。在此背景下,基于1880年-2022年全球平均气温时间序列数据,分别构建出ARIMA(3,1,2)自回归模型、灰色预测模型、BP神经网络三种模型,并分别对2050、2100年全球平均温度进行了预测,并将三种预测模型的预测效果进行了对比,文中所用数据和代码均可在文末获取。

目录

 1   模型介绍

1.1  自回归滑动平均模型

 1.2  灰色预测模型

1.3 BP神经网络模型

 2  结果分析

2.1  数据可视化

 2.2  自回归移动平均模型及预测

2.2.1 全球平均温度变化趋势分析

2.2.2  一阶差分

 2.2.3  判断ARIMA自相关模型参数

 2.2.4  利用ARIMA自相关模型进行预测

 2.3  GM(1,1)模型预测

2.3.1 GM(1,1)模型建立与检验

2.3.2 GM(1,1)模型预测结果分析

 2.4 BP神经网络模型预测

2.4.1 BP神经网络训练

 3 三种模型预测比较


 1   模型介绍

 

1.1  自回归滑动平均模型

        差分运算可以提取确定性的信息,一些非平稳序列差分后会显示出平稳序列的性质,此时这个序列也被称为差分平稳序列,可用ARIMA模型进行拟合。具有如下结构的模型被称为求和自回归移动平均模型,简记为ARIIMA(p,d,q)模型:

4ba28579ebea4c16aeb05fe6c59e42c1.png

 1.2  灰色预测模型

       灰色预测模型(GM)的主要特点是模型使用的不是原始数据序列,而是生产的数据序列。其核心体系是灰色模型,即对原始数据作累加生成得到近似的规律,建立有规律的生成数列的回归方程,并应用该方程对研究对象动态发展趋势进行预测。再进行建模型。本文选取灰色预测模型中的GM(1,1),GM(1,1)灰色预测模型以时间序列数据为基础,它表示模型是一阶微分方程,并且只含有一个变量。

bde90f07b28049d282972e4ddaa47d8d.png

     通过GM(1,1)模型就可指定时区内的预测值,根据实际问题需要,给出相应的预测。

1.3 BP神经网络模型

       BP神经网络是一种多层前馈神经网络,该网络的主要特点是信号向前传递,误差反向传播。在向前传递中输入信号从输入层经隐含层逐层处理,直至输出层,每一层的神经元状态只影响下一层的神经元状态。如果输出层得不到期望输出,则再反向传播,根据预测误差调整网络权重和阈值,从而使BP神经网络预测输出不断逼近期望输出。BP神经网络的拓扑结构如图1所示。

292ce8e81c5249a9a4a3b83565736a3d.png

 2  结果分析

2.1  数据可视化

       利用1880-2022年全球平均气温数据,通过R画出了全球平均气温逐年数据序列图和近十年全球平均气温变化图,分别如图2、图3所示。

539439e259d54362913ab77e14852498.png

100ee5d8bc864316b75c6adab7717eb9.png

        通过图2和3可以看出,全球平均气温从总体上呈现递增趋势,特别是1960年到2022年,其增长幅度与1960年以前相比更大。2022年3月的全球平均气温达到14.91℃,结合最近十年的全球平均气温变化,我们可以得出2022年3月全球气温的升高导致了比以往10年期间观察到的全球平均气温具有更大的增长。

 2.2  自回归移动平均模型及预测

2.2.1 全球平均温度变化趋势分析

      通过图2可以看出,该时间序列数据具有递增趋势,表现为不平稳。

2.2.2  一阶差分

     将全球平均气温数据进行一阶差分,差分后的序列趋于平稳,其结果见图4所示。

3c25037476c649b7bd8e46a3bbb5819b.png

 2.2.3  判断ARIMA自相关模型参数

       一阶差分后序列的自相关系数与偏自相关系数见图5,结合图像特征,尝试用ARIMA(0,1,1)、ARIMA(2,1,1)、ARIMA(3,1,2)模型进行拟合。通过AIC准则和BIC准则对三个模型进行评估,最终选取ARIMA(3,1,2)模型进行预测。

f233fa431c0e463a8d2f70d2458b6165.png

 2.2.4  利用ARIMA自相关模型进行预测

       利用ARIMA(3,1,2)模型预测分别预测2050年、2100年的全球平均温度分别为15.12℃、15.51℃,达不到20℃。各自的预测图像见图6、图7。

5b7ae9d84e684b97903dcc8eceb43343.png

1106fed7d6ac4522bf23fafbfacd9734.png

 

 数据可视化代码

setwd("D:/Desktop")

#1880开始

data<-read.csv("shuju.csv",header=TRUE,sep=',',fileEncoding='utf-8')

wendu<-ts(data$Average,start = 1880,frequency = 1)

plot(wendu,type="p",pch=8,xlim=c(1880,2022),xlab ="Time/year", ylab ="Global Mean Temperature/℃")

lines(wendu,col=5,lwd=2)

#2012开始

data<-read.csv("12.csv",header=TRUE,sep=',',fileEncoding='utf-8')

wendu<-ts(data$Average,start = 2012,frequency = 1)

plot(wendu,type="p",pch=8,xlim = c(2012,2022),xlab ="Time/year", ylab ="Global Mean Temperature/℃")

lines(wendu,col=4,lwd=2)

 

ARIMA时间序列模型代码

install.packages("fUnitRoots")

install.packages("tseries")

install.packages("forecast")

library(forecast)

library(tseries)

library(fUnitRoots)

mydata=read.csv("C:/Users/hasee/Desktop/data.txt")

sjxlmydata=ts(mydata,start=1881,end = 2022,frequency = 1)

sjxlmydata

plot.ts(sjxlmydata,xlab = "Time(year)",col="blue",ylab = "Global average temperature(℃)",

        main="Global annual mean temperature time series")

length(sjxlmydata)

unitrootTest(sjxlmydata)

dsjxlmydata=diff(sjxlmydata)

dsjxlmydata

plot.ts(dsjxlmydata,xlab = "Time(year)",col="blue",ylab = "The global average temperature after one difference(℃)",

        at=c(1880,1900,1920,1940,1960,1980,2000,2020,2022),main="Differential time series of global annual mean temperature")

axis(side = 2,at=c(-0.2,-0.1,0,0.1,0.2))

Acf(dsjxlmydata,col="purple",lwd=2,,xlab = "Lag period",ylab = "Range of fluctuation",main="ACF")

Pacf(dsjxlmydata,,col="purple",lwd=2,,xlab = "Lag period",ylab = "Range of fluctuation",main="PACF")

 

unitrootTest(dsjxlmydata)

library(forecast)

fit=auto.arima(sjxlmydata)

fit

qqnorm(fit$residuals)

qqline(fit$residuals)

forecast(fit,28)

 

plot(forecast(fit,28),col="red",at=c(1880,1900,1920,1940,1960,1980,2000,2020,2022,2050),lwd=2,xlab = "Time(year)",

     main="ARIMA(3,1,2)is used to forecast

     the global average temperature in 2050",ylab = "Global average temperature(℃)",shadecols="oldstyle",axis=(40))

axis(side = 2,at=c(0,5,10,15,20))

 

plot(forecast(fit,100),col="red",at=c(1880,920,960,2000,2040,2060,2100),lwd=2,xlab = "Time(year)",

     ,main="ARIMA(3,1,2)is used to forecast

     the global average temperature in 2100",ylab = "Global average temperature(℃)",shadecols="oldstyle",axis=(40))

axis(side = 2,at=c(0,5,10,15,20))

 

plot(forecast(fit,652),col="red",at=c(1880,1980,2080,2200,2300,2400,2500,2600,2674),lwd=2,xlab = "Time(year)",

     main="

Arima (3,1,2) model is used to predict when the

     global average temperature will reach 20 °C",ylab = "Global average temperature(℃)",shadecols="oldstyle",axis=(40))

axis(side = 2,at=c(0,3,6,9,12,15,18,20))

abline(v=2672,h=20,lty=2,col="purple")

 

library(forecast)

library(tseries)

library(fUnitRoots)

mydata=read.csv("C:/Users/hasee/Desktop/data1.txt")

sjxlmydata=ts(mydata,start=2023,end=2267,frequency = 1)

sjxlmydata

plot.ts(sjxlmydata,xlab="Time(year)",col="blue",ylab="Global average temperature(℃)",lwd=2,at=c(2023,2050,2100,2150,2200,2268),main="BP neural network predictive value")

axis(side=2,at=c(0,3,6,9,12,15,18,20))

abline(v=2268,h=20,lty=2,col="purple")

 2.3  GM(1,1)模型预测

2.3.1 GM(1,1)模型建立与检验

ef6fc5d04183400f90c14dce2e90ffd4.png

        利用Python进行编程,实现GM(1,1)模型,模型的各种检验指标的计算结果见表1。经过验证,该模型的精度较高,可以进行预测。

表1 GM(1,1)模型检验表

序号

年份

原始值

预测值

残差

相对误差

级比偏差

1

2013

14.6

14.8

0.0057

0.37%

0.0203

2

2014

14.68

14.8

0.1638

0.54%

0.0107

3

2015

14.73

14.9

0.3290

0.39%

0.0232

4

2016

14.8

14.9

0.4984

0.47%0.

0.0341

5

2017

14.75

14.9

0.2699

0.65%

0.0425

6

2018

14.96

15.0

0.0378

0.09%

0.0018

7

2019

14.98

15.0

0.2140

0.09%

0.0017

8

2020

14.9

15.0

0.1423

0.09%

0.0018

9

2021

14.85

15.0

0.1470

0.35%

0.0742

10

2022

14.91

15.1

0.6241

0.18%

0.0023

2.3.2 GM(1,1)模型预测结果分析

    通过建立的GM(1,1)模型分别预测得到2050年和2100年全球平均气温为15.90℃、17.50℃,具体结果见代码模块。

灰色预测模型代码

import matplotlib.pyplot as plt

import pandas as pd

import numpy as np

def GM11(x,n):

    x1 = x.cumsum()#一次累加 

    z1 = (x1[:len(x1) - 1] + x1[1:])/2.0#紧邻均值 

    z1 = z1.reshape((len(z1),1)) 

    B = np.append(-z1,np.ones_like(z1),axis=1) 

    Y = x[1:].reshape((len(x) - 1,1))

    #a为发展系数 b为灰色作用量

    [[a],[b]] = np.dot(np.dot(np.linalg.inv(np.dot(B.T, B)), B.T), Y)#计算待估参数 

    result = (x[0]-b/a)*np.exp(-a*(n-1))-(x[0]-b/a)*np.exp(-a*(n-2))  #预测方程

    S1_2 = x.var()#原序列方差

    e = list()#残差序列

    for index in range(1,x.shape[0]+1):

        predict = (x[0]-b/a)*np.exp(-a*(index-1))-(x[0]-b/a)*np.exp(-a*(index-2))

        e.append(x[index-1]-predict)

        print(predict)    #预测值

    S2_2 = np.array(e).var()#残差方差

    C = S2_2/S1_2#后验差比

    if C<=0.35:

        assess = '后验差比<=0.35,模型精度等级为好'

    elif C<=0.5:

        assess = '后验差比<=0.5,模型精度等级为合格'

    elif C<=0.65:

        assess = '后验差比<=0.65,模型精度等级为勉强'

    else:

        assess = '后验差比>0.65,模型精度等级为不合格'

    #预测数据

    predict = list()

    for index in range(x.shape[0]+1,x.shape[0]+n+1):

        predict.append((x[0]-b/a)*np.exp(-a*(index-1))-(x[0]-b/a)*np.exp(-a*(index-2)))

        #print((x[0]-b/a)*np.exp(-a*(index-1)))

        #print((x[0]-b/a)*np.exp(-a*(index-2)))

    predict = np.array(predict)

 

    return {

            'a':{'value':a,'desc':'发展系数'},

            'b':{'value':b,'desc':'灰色作用量'},

            'predict':{'value':result,'desc':'第%d个预测值'%n},

            'C':{'value':C,'desc':assess},

            'predict':{'value':predict,'desc':'往后预测%d个的序列'%(n)},

            }

 

if __name__ == "__main__":

    data = np.array([14.6,14.68,14.73,14.8,14.75,14.96,14.98,14.9,14.85,14.91])

    x = data[0:5]#数据

    y = data[0:]#预测数据

    result = GM11(x,38)

    predict = result['predict']['value']

    predict = np.round(predict,1)

    print('真实值:',y)

    print('预测值:',predict)

    print(result)

plt.plot( data, color='r', linestyle="-", marker='*', label='True')

plt.plot(predict, color='b', linestyle="--", marker='.', label="Predict")

plt.legend(loc='upper right')

plt.xlabel('xlabel')

plt.ylabel('ylabel')

plt.title('Prediction by Grey Model (GM(1,1))')

plt.show()

 

#利用GM(1,1)模型预测2050年全球平均温度结果:

(14.670223149836602

14.69807920745643

14.725988158610562

14.753950103731768

14.78196514345018

真实值: [14.6  14.68 14.73 14.8  14.75 14.96 14.98 14.9  14.85 14.91]

预测值: [14.8 14.8 14.9 14.9 14.9 15.  15.  15.  15.  15.1 15.1 15.1 15.2 15.2

 15.2 15.2 15.3 15.3 15.3 15.4 15.4 15.4 15.4 15.5 15.5 15.5 15.6 15.6

 15.6 15.6 15.7 15.7 15.7 15.8 15.8 15.8 15.9 15.9]

{'a': {'value': -0.0018970157440081903, 'desc': '发展系数'}, 'b': {'value': 14.656445941555171, 'desc': '灰色作用量'}, 'predict': {'value': array([14.81003338, 14.83815491, 14.86632984, 14.89455827, 14.9228403 ,

       14.95117603, 14.97956556, 15.008009  , 15.03650646, 15.06505802,

       15.09366379, 15.12232389, 15.1510384 , 15.17980744, 15.2086311 ,

       15.2375095 , 15.26644273, 15.2954309 , 15.32447411, 15.35357247,

       15.38272608, 15.41193505, 15.44119949, 15.47051948, 15.49989516,

       15.52932661, 15.55881395, 15.58835728, 15.6179567 , 15.64761233,

       15.67732427, 15.70709263, 15.73691751, 15.76679903, 15.79673728,

       15.82673238, 15.85678444, 15.88689356]), 'desc': '往后预测38个的序列'}, 'C': {'value': 0.32196000409798153, 'desc': '后验差比<=0.35,模型精度等级为好'}})

 

#利用GM(1,1)模型预测2100年全球平均温度结果:

14.670223149836602

14.69807920745643

14.725988158610562

14.753950103731768

14.78196514345018

真实值: [14.6  14.68 14.73 14.8  14.75 14.96 14.98 14.9  14.85 14.91]

预测值: [14.8 14.8 14.9 14.9 14.9 15.  15.  15.  15.  15.1 15.1 15.1 15.2 15.2

 15.2 15.2 15.3 15.3 15.3 15.4 15.4 15.4 15.4 15.5 15.5 15.5 15.6 15.6

 15.6 15.6 15.7 15.7 15.7 15.8 15.8 15.8 15.9 15.9 15.9 15.9 16.  16.

 16.  16.1 16.1 16.1 16.2 16.2 16.2 16.3 16.3 16.3 16.3 16.4 16.4 16.4

 16.5 16.5 16.5 16.6 16.6 16.6 16.7 16.7 16.7 16.8 16.8 16.8 16.8 16.9

 16.9 16.9 17.  17.  17.  17.1 17.1 17.1 17.2 17.2 17.2 17.3 17.3 17.3

 17.4 17.4 17.4 17.5]

{'a': {'value': -0.0018970157440081903, 'desc': '发展系数'}, 'b': {'value': 14.656445941555171, 'desc': '灰色作用量'}, 'predict': {'value': array([14.81003338, 14.83815491, 14.86632984, 14.89455827, 14.9228403 ,

       14.95117603, 14.97956556, 15.008009  , 15.03650646, 15.06505802,

       15.09366379, 15.12232389, 15.1510384 , 15.17980744, 15.2086311 ,

       15.2375095 , 15.26644273, 15.2954309 , 15.32447411, 15.35357247,

       15.38272608, 15.41193505, 15.44119949, 15.47051948, 15.49989516,

       15.52932661, 15.55881395, 15.58835728, 15.6179567 , 15.64761233,

       15.67732427, 15.70709263, 15.73691751, 15.76679903, 15.79673728,

       15.82673238, 15.85678444, 15.88689356, 15.91705985, 15.94728342,

       15.97756438, 16.00790284, 16.0382989 , 16.06875268, 16.09926429,

       16.12983384, 16.16046143, 16.19114717, 16.22189119, 16.25269358,

       16.28355445, 16.31447393, 16.34545212, 16.37648913, 16.40758507,

       16.43874006, 16.46995421, 16.50122762, 16.53256042, 16.56395271,

       16.59540462, 16.62691624, 16.6584877 , 16.6901191 , 16.72181057,

       16.75356222, 16.78537415, 16.81724649, 16.84917936, 16.88117285,

       16.91322709, 16.9453422 , 16.9775183 , 17.00975548, 17.04205388,

       17.07441361, 17.10683478, 17.13931752, 17.17186193, 17.20446814,

       17.23713627, 17.26986642, 17.30265872, 17.33551329, 17.36843025,

       17.4014097 , 17.43445178, 17.4675566 ]), 'desc': '往后预测88个的序列'}, 'C': {'value': 0.32196000409798153, 'desc': '后验差比<=0.35,模型精度等级为好'}}

 2.4 BP神经网络模型预测

2.4.1 BP神经网络训练

       将全球平均气温数据进行数据预处理后得到138个样本,选取120个作为训练集,18个作为测试集进行BP神经网络训练。训练表现和训练结果分别见图8、图9,根据得到的结果,判断是否满足需求,一般是模型的MSE值越小,R值越接近1。结合图像可以看出,BP神经网络的训练结果较好,可以进行预测。

c8a66cb6a0604feea8987fdf31727a7e.png

 

ce4d225448d747179bd95f5ded5c7613.png

        利用BP神经网络进行预测,其预测结果见表2,从表中可以看出2050年全球平均温度的预测值为14.89℃,2100年全球平均温度的预测为15.55℃,二者均未达到20℃。

表2 BP神经网络预测值

Year

temperature℃

Year

temperature℃

Year

temperature℃

Year

temperature℃

2023

14.80

2051

14.87

2100

15.55

2196

18.45

2024

14.78

2052

14.89

2101

15.68

2197

18.49

2025

14.80

2053

14.89

2102

15.7

2198

18.5

2026

14.76

2054

14.88

2103

15.79

2199

18.48

2027

14.83

2055

14.93

2104

15.99

2200

18.55

2028

14.88

2056

14.94

2105

15.84

2201

18.6

2029

14.90

2057

14.95

2106

15.98

2202

18.65

2030

14.85

2058

14.91

2107

16.12

2203

18.59

2031

14.87

2059

14.95

2108

16.04

2204

18.64

2032

14.84

2060

14.95

2109

16.21

2205

18.69

2033

14.80

2061

14.96

2110

16.37

2206

18.75

2034

14.80

2062

14.95

2111

16.31

2207

18.79

2035

14.78

2063

14.96

2112

16.45

2208

18.86

2036

14.86

2064

14.96

2113

16.35

2209

18.74

2037

14.78

2065

14.97

2114

16.68

9d9b61727a9f4dd5908d9a3ae9770ee9.png

69e3ea0c387a4d30aa4068801db4c2c3.png

2dd9e53918824c73887bce983d522703.png

8532c3d1ca6c4b008945726efb8c5b51.png

0c851bb0f87e40b1b62e16e57ebedbaa.png

8cecccbe8a584bd591df4fe8bc139239.png

a1235c2fa33e4f22a232bb4c6366aec6.png

2c0cb9b74e4b4ce8859516edd8b12617.png

2267

19.97

2050

14.89

2099

15.52

2195

18.37

2268

20.03

f36d926dc5e843358cd416cf75fbb51f.png

BP神经网络模型代码

close all

clc

input=a;

output=b;

input_train = input(1:120,:)';

output_train =output(1:120,:)';

input_test = input(121:138)';

output_test =output(121:138,:)';

inputnum=2; % 输入层节点数量

hiddennum=5;% 隐含层节点数量

outputnum=1; % 输出层节点数量

 [inputn,inputps]=mapminmax(input_train);%归一化到[-1,1]之间,inputps用来作下一次同样的归一化

[outputn,outputps]=mapminmax(output_train);

net=newff(inputn,outputn,hiddennum,{'tansig','purelin'},'trainlm'); W1= net. iw{1, 1};

B1 = net.b{1};

W2 = net.lw{2,1};

B2 = net. b{2};

net.trainParam.epochs=1000;    % 训练次数,这里设置为1000次

net.trainParam.lr=0.01;         % 学习速率,这里设置为0.01

net.trainParam.goal=0.00001;    % 训练目标最小误差,这里设置为0.00001

net=train(net,inputn,outputn);

inputn_test=mapminmax('apply',input_test,inputps);

an=sim(net,inputn_test);

test_simu=mapminmax('reverse',an,outputps);

error=test_simu-output_test;

figure('units','normalized','position',[0.119 0.2 0.38 0.5])

plot(output_test,'bo-','markersize',10,'markerfacecolor','b')

hold on

plot(test_simu,'rs-','markersize',10,'markerfacecolor','r')

grid on%添加网格

legend('期望值','预测值','误差')

xlabel('数据组数')

ylabel('样本值')

title('BP神经网络测试集的预测值')

[c,l]=size(output_test);

MAE1=sum(abs(error))/l;

MSE1=error*error'/l;

RMSE1=MSE1^(1/2);

disp(['-----------------------误差计算--------------------------'])

disp(['隐含层节点数为',num2str(hiddennum),'时的误差结果如下:'])

disp(['平均绝对误差MAE为:',num2str(MAE1)])

disp(['均方误差MSE为:       ',num2str(MSE1)])

disp(['均方根误差RMSE为:  ',num2str(RMSE1)])

 3 三种模型预测比较

        ARIMA自回归预测模型的预测效果可以通过残差分布来确定,良好的ARIMA自回归预测模型的残差应满足均值为零的正态分布,即QQ-Plot图像近似为过原点的一条直线,则残差服从正态分布且均值为零。通过图11可以看出ARIMA(3,1,2)模型的预测效果较好,但在首尾两端仍有部分点未落在直线上。通过表3可以看出GM(1,1)模型的预测精度也较好,但由于灰色预测只用了原始数据的很小一部分数据进行预测,预测效果不如另外两个模型精准。通过图12,我们可以看出BP神经网络的误差直方图基本服从正态分布,预测效果较好。因此,经过对比,认为BP神经网络的预测效果最佳。 

15841b54a1594cfc83f239cd7eb5a1a8.png

   

f3747960a3b34aaf9ed65f2a409f56f0.png

 

f3ec68a3249b49f5917df043668e7146.png

 需要数据集的家人们可以去百度网盘(永久有效)获取:

链接:https://pan.baidu.com/s/1NcsNDS_BCt2IGgeKbu069A?pwd=2138 
提取码:2138 


更多优质内容持续发布中,请移步主页查看。

   点赞+关注,下次不迷路!

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

运用自回归滑动平均模型、灰色预测模型、BP神经网络三种模型分别预测全球平均气温,并进行预测精度对比(附代码、数据) 的相关文章

随机推荐

  • 电脑重装系统后无法连接网络怎么处理

    最近小编的台式电脑重装系统后无法连接网络 发现很多朋友也有同样的情况 那么遇到这种情况我们要如何处理呢 下面小编就来为大家讲解一下台式电脑重装系统后无法连接网络处理方法 方法 步骤 方法一 检查本地连接问题 1 鼠标右键点击系统桌面上的 网
  • DocArray 0.20.0 发布!新增 Milvus 后端支持,更好地嵌套数据搜索,新增 RGB-D 格式的 3D 模型表示

    DocArray 是一个用于处理 传输和存储多模态数据的 Python 工具包 DocArray 提供便捷的多模态数据处理功能 具备基于 Protobuf 提供高性能的网络传输性能 同时也为多种向量存储方案提供统一的 API 接口 GitH
  • CTFShow-Web入门

    目录 爆破 web21 web22 web23 web24 web25 web26 web27 web28 爆破 web21 解题思路 考察burp的intruder模块 访问发现是前端验证 随便输入账号密码抓包发现是Basic认证 Bas
  • 【splishsplash】splishsplash入门使用

    本文的目地为总结splishsplash的入门使用方法 splishsplash是一个C 开源流体引擎 主要用于产生流体动画 它的核心算法是SPH法 资源汇总 github https github com InteractiveCompu
  • 数据挖掘之关联规则挖掘的一些定义

    一 算法定义 关联规则挖掘用于发现隐藏在大型数据集中的令人感兴趣的联系 所发现的模式通常用关联规则或频繁项集的形式表示 关联规则反映了一个事物与其他事物之间的相互依存性和关联性 如果两个或多个事物之间存在一定的关联关系 那么 其中一个事物发
  • c++ STL map简介

    首先头文件 include
  • 深入JS内存模型

    前言 什么是JS的内存模型 看过了很多资料 都是千篇一律的栈内存 堆内存 基本数据类型存储在栈内存 引用数据类型存储在堆内存等等之类的 看过这些之后 对于我们去理解整个JS内存之中复杂的关系 本文会从JavaScript语法之中的各个语言特
  • DHCP攻击与防范实践

    1 DHCP工作原理 DHCP客户端从服务端申请到IP地址等网络配置信息需要经过四个步骤 每个步骤需要发送相应类型的数据报文 如下图所示 首先由客户端以广播方式发出 DHCP Discover 报文来寻找网络中的DHCP服务端 当服务端接收
  • go localhost 的简单使用

    首先在文件夹增加文件web go package main import net http func main http Handle http FileServer http Dir http ListenAndServe 8080 ni
  • DirectShow资源共享

    前段时间为了公司内部培训 写了两个DirectShow的PPT 共享如下 https skydrive live com cid 0E1C9F572B6A2D19 id E1C9F572B6A2D19 211790 另外 我的几本书的源代码
  • VS2022 LNK1104无法打开文件“libboost_filesystem-vc143-mt-gd-x64-1_78.lib”

    VS发布了最新版2022 刚好最近我要用到VS我就下载了最新版 配置了一个PCL环境 尝试运行一段代码 结果报错 找了半天问题才找到 记录一下 错误 LNK1104 无法打开文件 libboost filesystem vc143 mt g
  • qt5开发及实例_Qt 5.14版本正式发布(带下载链接)

    摘录并翻译自Qt官网内容 快来看看新版本更新了些什么东西吧 我们今天 2019 12 12 发布了Qt 5 14 该版本以及明年的Qt 5 15 LTS开始为通向Qt 6铺平道路 尽管我们正在努力通过标记不推荐使用的功能使将来尽可能平稳地移
  • git bash 不支持中文处理

    1 打开git bash后 对窗口右键 gt Options gt Text gt Locale改为zh CN Character set改为UTF 8 关闭git bash 再打开 可以显示中文了 2 如果前一种方法不行 则在git ba
  • 解决org.springframework.amqp.AmqpException: No method found for class [B

    spring boot在集成rabbitmq时 如果使用 amqp client 发送消息 RabbitListener会一直循环报错 org springframework amqp rabbit listener exception L
  • 为何学linux及用处

    目前企业使用的操作系统无非就是国产类的 windows和linux类 我们要提升自己的技能 需要学习这两款 我记得在大学时期 学习过windows以及linux 但当时觉得又不常用 就学的模棱两可 毕业之后 你会发现 其实这两种操作系统是很
  • nginx热部署的原理:nginx -s reload

    我们执行这条命令的原因是希望 nginx 不停止服务始终在处理新的请求的同时把 nginx 的配置文件平滑的把旧的 nginx conf 配置更新为新的 nginx conf 配置 这样一个功能对于 nginx 非常有必要 但是有时候我们会
  • 几本适合嵌入式软件工程师阅读的电子入门书

    导读 周末了 下面这些书 是我作为一个 计算机科学与技术出身的嵌入式软件工程师 出于自身的兴趣爱好且为了更好和硬件工程师们协作 从自身的角度出发而搜集到的信息 仅供参考 不构成专业建议 同时 也希望有经验的嵌入式 硬件工程师 能给我和其他对
  • mysql的replace字符串的替换

    PLACE str from str to str 例 REPLACE 4 568 23 把逗号改为空结果为 4568 23
  • mysql查看执行计划EXPLAIN

    一 EXPLAIN语法 语法 EXPLAIN SELECT 1 EXPLAIN EXTENDED SELECT 将执行计划 反编译 成SELECT语句 运行SHOW WARNINGS 可得到被MySQL优化器优化后的查询语句 2 EXPLA
  • 运用自回归滑动平均模型、灰色预测模型、BP神经网络三种模型分别预测全球平均气温,并进行预测精度对比(附代码、数据)

    大家好 我是带我去滑雪 每天教你一个小技巧 全球变暖是近十年来 人们关注度最高的话题 2022年夏天 蔓延全球40 以上的极端天气不断刷新人们对于高温的认知 人们再也不会像从前那样认为全球变暖离我们遥不可及 在此背景下 基于1880年 20