乐趣区

关于数据挖掘:R语言气象模型集成预报技术神经网络回归svm决策树用环流因子预测降雨降水数据

全文链接:http://tecdat.cn/?p=31664

原文出处:拓端数据部落公众号

随着天气预报技术的倒退,数值预报产品日益丰盛,预报办法多种多样。咱们被客户要求撰写对于气象集成预报技术的钻研报告,包含一些图形和统计输入。在理论利用中,对每个具体的问题,各种预报办法得出的后果通常是不统一的,因此不晓得如何将它们对立起来。因而须要采纳一种较好的解决办法,把不同预报办法对同一因素的多种预报后果综合在一起,从而得出一个优于繁多预报办法的预报论断,这就是预报办法的集成问题。

本文剖析了传统的基于加权的集成预报办法及其在气象预测利用中存在的问题,在此基础上提出了一种新的基于数据挖掘的集成预报办法,该办法选用 BP 人工神经网络建设集成预报分类器,对文中 BP 人工神经网络、多元回归、SVM、决策树模型四种子预报办法的预报后果进行集成和综合。

基于数据挖掘的集成预报办法利用从子预报办法中筛选的训练集进行训练,失去集成预报分类器;该集成预报分类器能够依据环流因子的输出,间接失去一种最优子预报办法,而后利用失去的最优子预报办法去预测,将最优子预报办法的预报后果作为集成预
报的预报后果。

试验数据集形容

试验应用的输出数据是环流因子,是由国家气象核心气象系统诊断预测室再解决材料,材料数据全都为整型。

环流因子数据

30 年降水数据

本文介绍了四种常见的气象子预报办法:BP 人工神经网络、多元回归、SVM、决策树模型,并通过理论的数据集进行预报测验。从试验后果能够得出,对于不同的预报环境和预报样本,并没有哪一种子预报办法的预报后果可能保障始终是最优的。


环流因子 =read.csv("环流因子.csv") 
降水数据 =read.csv("30 年降水数据.csv") 
 

转换降水数据

 


y=0  
   
 for(i in 2:ncol(降水数据)){y=c(y, 降水数据[,i])
 
 
 环流因子 = 环流因子[1:length(yy),]  
   
 datanew=data.frame(降水数据 =yy, 环流因子[,-1])

 

多元回归

model=lm(降水数据~.,data=datanew)
plot(datanew[,2:1])  
 abline(model)

svm 反对向量机

当初咱们在训练集上应用来训练线性 SVM


##  
##  
## Parameters:  
##    SVM-Type:  eps-regression  
##  SVM-Kernel:  radial  
##        cost:  1  
##       gamma:  0.01351351  
##     epsilon:  0.1  
##  
##  
## Number of Support Vectors:  107

绘制拟合图

points(datanew[,2], predictedY, col = "red", pch=4)
mse <- function(error)  
 {sqrt(mean(error^2))  
 }
 
## [1] 599.4382

决策树

绘制决策树


## Variables actually used in tree construction:  
## [1] X.19 X.30 X.57 X.72 X.73  
##  
## Root node error: 328275991/372 = 882462


draw.tree(CARTmodel)

依据 cp 值对决策树进行剪枝 

 cable[which.min(CARTmodel$cptable[,"xerror"]),"CP"]

对数据进行预测

plot(tree.pred,  datanew.test$ 降水数据)  
 abline(0,1)

神经网络

y=datanew$ 降水数据  
#  y<-data.frame((y-min(y))/(max(y)-min(y)))  
 names(y)<-'y'  
   
 mod1<-net(datanew
 
 summary(mod1)

## a 75-10-1 network with 771 weights  
## options were - linear output units  
##   b->h1  i1->h1  i2->h1  i3->h1  i4->h1  i5->h1  i6->h1  i7->h1  i8->h1  
##   -0.26    0.53   -0.19    0.00   -0.39   -0.57    0.40   -0.05    0.54  
##  i9->h1 i10->h1 i11->h1 i12->h1 i13->h1 i14->h1 i15->h1 i16->h1 i17->h1  
##    0.57   -0.51    0.53    0.66   -0.18   -0.15    0.36   -0.67   -0.54  
## i18->h1 i19->h1 i20->h1 i21->h1 i22->h1 i23->h1 i24->h1 i25->h1 i26->h1  
   
##   h9->o  h10->o  
##   47.66   55.81

模型集成

在理论利用中,对每个具体的问题,各种预报办法得出的后果通常是不统一的,因此不晓得如何将它们对立起来。个别地,每个具体预报办法的预报思维不同,其适应的具体环境也就不同,失去的预报后果的精确水平也不雷同,对某类数据有较好预报后果的办法,对其它数据不肯定有较好后果。因而须要采纳一种较好的解决办法,把不同数值模式对同一因素的多种预报后果综合集成在一起,从而得出一个优于繁多预报办法的预报论断,这就是预报办法的集成问题。

只管罕用的集成预报办法有回归集成、均匀集成、少数表决和加权集成预报办法等,然而这些集成预报办法实质上属于一种基于加权的集成办法。

本文办法的大抵思维如下:以各子预报方程的历史拟合样本作为神经网络集成预报模型学习矩阵输出,相应的预报量序列作为学习矩阵的冀望输入。只是确定权值的形式是一直地进行学习训练,权值存在于简单的人工神经网络构造中,并不是线性和容易了解的。最初,把该子预报办法的预报后果作为集成预报办法的预报后果。

应用神经网络对训练后果进行集成

   
 mod1<-net(trainerror,y,size=10,linout=T)
 
 ## # weights:  61  
## initial  value 526570419.869292  
## iter  10 value 119410102.980870  
## iter  20 value 25370475.287456  
## final  value 25370458.492646  
## converged

summary(mod1)

## a 4-10-1 network with 61 weights  
## options were - linear output units  
##   b->h1  i1->h1  i2->h1  i3->h1  i4->h1  
##    0.37  148.56  162.50   -2.06    2.30  
##   b->h2  i1->h2  i2->h2  i3->h2  i4->h2  
##    0.48  -56.65   46.85    2.23   -1.23  
##   b->h3  i1->h3  i2->h3  i3->h3  i4->h3  
##   -0.11    7.56   15.11   -1.18    1.41  
##   b->h4  i1->h4  i2->h4  i3->h4  i4->h4  
##    0.42  -14.15  -11.55    1.49   -1.12  
##   b->h5  i1->h5  i2->h5  i3->h5  i4->h5  
##   -0.34   57.24   79.60 -176.40    6.91  
##   b->h6  i1->h6  i2->h6  i3->h6  i4->h6  
##   -0.44   -0.22    6.17    0.82   -0.01  
##   b->h7  i1->h7  i2->h7  i3->h7  i4->h7  
##    0.03   -0.14   -0.61    0.04   -0.14  
##   b->h8  i1->h8  i2->h8  i3->h8  i4->h8  
##   -0.34   65.01  -72.91  -10.22    9.67  
##   b->h9  i1->h9  i2->h9  i3->h9  i4->h9  
##    0.20   -1.31   14.80    0.90   -0.73  
##  b->h10 i1->h10 i2->h10 i3->h10 i4->h10  
##   -0.46   -2.63  -23.62   -0.60    1.51  
##    b->o   h1->o   h2->o   h3->o   h4->o   h5->o   h6->o   h7->o   h8->o  
##  368.20 -340.26   -4.79 4963.64 -158.47  517.21   24.37   -5.77   23.41  
##   h9->o  h10->o  
##   30.60  336.40

绘制拟合数据


最受欢迎的见解

1.R 语言实现 CNN(卷积神经网络)模型进行回归

2.r 语言实现拟合神经网络预测和后果可视化

3.python 用遗传算法 - 神经网络 - 含糊逻辑控制算法对乐透剖析

4.R 语言联合新冠疫情 COVID-19 股票价格预测:ARIMA,KNN 和神经网络工夫序列剖析

5.Python TensorFlow 循环神经网络 RNN-LSTM 神经网络预测股票市场价格工夫序列和 MSE 评估准确性

6.Matlab 用深度学习长短期记忆(LSTM)神经网络对文本数据进行分类

7. 用于 NLP 的 seq2seq 模型实例用 Keras 实现神经机器翻译

8. R 语言用 FNN-LSTM 假近邻长短期记忆人工神经网络模型进行工夫序列深度学习预测

9.Python 用 RNN 循环神经网络:LSTM 长期记忆、GRU 门循环单元、回归和 ARIMA 对 COVID-19 新冠疫情新增人数工夫序列预测

退出移动版