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

简介: R语言气象模型集成预报:神经网络、回归、svm、决策树用环流因子预测降雨降水数据

我们被客户要求撰写关于气象集成预报技术的研究报告,包括一些图形和统计输出。在实际应用中,对每个具体的问题,各种预报方法得出的结果通常是不一致的,因而不知道如何将它们统一起来。因此需要采用一种较好的处理方法,把不同预报方法对同一要素的多种预报结果综合在一起,从而得出一个优于单一预报方法的预报结论,这就是预报方法的集成问题。

本文分析了传统的基于加权的集成预报方法及其在气象预测应用中存在的问题,在此基础上提出了一种新的基于数据挖掘的集成预报方法,该方法选用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)

点击标题查阅往期内容


ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测


01

02

03

04

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<-nnet(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<-nnt(trainerror,y,sizout=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


绘制拟合数据


相关文章
|
数据采集 机器学习/深度学习 数据可视化
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。
R语言基于表格文件的数据绘制具有多个系列的柱状图与直方图
【9月更文挑战第9天】在R语言中,利用`ggplot2`包可绘制多系列柱状图与直方图。首先读取数据文件`data.csv`,加载`ggplot2`包后,使用`ggplot`函数指定轴与填充颜色,并通过`geom_bar`或`geom_histogram`绘图。参数如`stat`, `position`, `alpha`等可根据需要调整,实现不同系列的图表展示。
332 9
|
数据采集 数据可视化 数据挖掘
R语言在金融数据分析中的深度应用:探索数据背后的市场智慧
【9月更文挑战第1天】R语言在金融数据分析中展现出了强大的功能和广泛的应用前景。通过丰富的数据处理函数、强大的统计分析功能和优秀的可视化效果,R语言能够帮助金融机构深入挖掘数据价值,洞察市场动态。未来,随着金融数据的不断积累和技术的不断进步,R语言在金融数据分析中的应用将更加广泛和深入。
|
机器学习/深度学习 算法 前端开发
R语言基础机器学习模型:深入探索决策树与随机森林
【9月更文挑战第2天】决策树和随机森林作为R语言中基础且强大的机器学习模型,各有其独特的优势和适用范围。了解并熟练掌握这两种模型,对于数据科学家和机器学习爱好者来说,无疑是一个重要的里程碑。希望本文能够帮助您更好地理解这两种模型,并在实际项目中灵活应用。
|
SQL 监控 安全
网络安全与信息安全:漏洞、加密与安全意识
随着互联网的迅猛发展,网络安全和信息安全问题日益受到关注。本文深入探讨了网络安全漏洞、加密技术以及提高个人和组织的安全意识的重要性。通过分析常见的网络攻击手段如缓冲区溢出、SQL注入等,揭示了计算机系统中存在的缺陷及其潜在威胁。同时,详细介绍了对称加密和非对称加密算法的原理及应用场景,强调了数字签名和数字证书在验证信息完整性中的关键作用。此外,还讨论了培养良好上网习惯、定期备份数据等提升安全意识的方法,旨在帮助读者更好地理解和应对复杂的网络安全挑战。
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
280 17
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
232 10
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
245 10
|
监控 安全 网络安全
网络安全与信息安全:漏洞、加密与意识的交织
在数字时代的浪潮中,网络安全与信息安全成为维护数据完整性、保密性和可用性的关键。本文深入探讨了网络安全中的漏洞概念、加密技术的应用以及提升安全意识的重要性。通过实际案例分析,揭示了网络攻击的常见模式和防御策略,强调了教育和技术并重的安全理念。旨在为读者提供一套全面的网络安全知识框架,从而在日益复杂的网络环境中保护个人和组织的资产安全。

热门文章

最新文章