本发明涉及节能服务技术领域,特别涉及一种合同能源管理项目的预测和评估方法。
背景技术:
合同能源管理项目是一种基于市场的新型节能机制,项目的实施结果是输出节能产品或是节能服务,最终达到对设备节能效率水平的提升,降低耗能,获得一定量的节能量,产生节能效益。从项目实施过程来看,合同能源管理项目的核心利益冲突包括合同能源管理提供方和用能单位可能对产生的节能量认同不一致,以及用能单位经营状况发生变化等诸多可能的冲突因素。因此,项目实施过程中可能存在的风险等是实施合同能源管理项目评估的关键,现有采用单一算法处理收益预测和风险评估存在着无法适应多样化的合同能源管理场景,容易导致算法的稳定性和准确率产生较大偏差。
进一步的,在合同能源管理项目的实施过程中,多种影响因素往往是交叉叠加存在的,其中的关系也是错综复杂。因此,使用全局建模可能会导致项目效益预测模型非常臃肿,且建模困难。在合同能源管理项目中,尤其对于节能效益分享型的项目,往往存在项目建设、运营和效益分享时间久的特点,期间存在多种影响项目顺利进行的风险因素,这些风险因素往往具有突发性和不可预测性,故整个项目运营过程中对于管理者而言,风险因素具有突发性和不可预测性,类似于“黑箱”现象。
因此有必要提供一种合同能源管理项目的预测和评估方法,使用局部数据对周围的复杂数据点进行建模,从而极大简化了建模的复杂度,提高了预测模型的准确性和实时性。
技术实现要素:
本发明的目的在于提供一种合同能源管理项目的预测和评估方法,使用局部数据对周围的复杂数据点进行建模,从而极大简化了建模的复杂度,提高了预测模型的准确性和实时性。
为了解决现有技术中存在的问题,本发明提供了一种合同能源管理项目的预测和评估方法,包括以下步骤:
采集历史合同能源管理项目中的历史数据;
对采集到的历史数据进行准备和预处理,形成训练数据集和预测数据集;
根据训练数据集和预测数据集进行训练,采用回归树或模型树建立动态实时预测模型,采用神经网络或支持向量机建立动态实时评估模型;
对预测模型和评估模型进行测试和优化;
待检测项目选择预测模型和/或评估模型进行预测和/或评估。
可选的,在所述合同能源管理项目的预测和评估方法中,对采集到的历史数据进行准备包括以下步骤:
将采集到的不同来源的历史数据进行组合并共享,并将特定时间戳数据进行可视化;
将共享和可视化后的历史数据形式进行变换,变换方式为将历史数据标准化。
可选的,在所述合同能源管理项目的预测和评估方法中,将历史数据标准化包括以下步骤:
将离散的历史数据连续化,并将连续化后的历史数据规格化。
可选的,在所述合同能源管理项目的预测和评估方法中,对采集到的历史数据进行预处理包括以下步骤:
将标准化后的历史数据划分成训练数据集和预测数据集。
可选的,在所述合同能源管理项目的预测和评估方法中,
所述划分方式包括按顺序划分或按时间划分。
可选的,在所述合同能源管理项目的预测和评估方法中,对预测模型和评估模型进行测试包括以下步骤:
取测试数据输入所述预测模型和所述评估模型,得到测试结果。
可选的,在所述合同能源管理项目的预测和评估方法中,得到测试结果之后,还包括以下步骤:
对测试结果进行可视化。
可选的,在所述合同能源管理项目的预测和评估方法中,对预测模型和评估模型进行优化包括以下步骤:
根据可视化的测试结果调整所述预测模型和所述评估模型的参数,得到优化后的预测模型和评估模型。
在本发明所提供的合同能源管理项目的预测和评估方法中,通过建立动态实时预测模型和评估模型,能够实现项目双方以及第三方等对经济效益进行动态实时预测,对风险进行动态实时评估,从客观上降低项目实施过程中的风险;并采用神经网络或支持向量机算法对合同能源管理项目的风险进行评估,由此实现算法对多场景数据环境的适应,完成在多样化数据环境下对项目风险的动态评估,降低项目评估周期,消除信息不对称及风险等;采用树模型对预测值进行分段,树模型是一种局部建模的方法,仅使用局部数据对周围的复杂数据点进行建模,从而极大简化了建模的复杂度,提高了预测模型的准确性和实时性,为项目证券化与产品的市场化交易提供充分的信息支持,从而促进合同能源市场规模成长。
附图说明
图1为本发明实施例提供的合同能源管理项目的预测和评估方法的流程图;
图2为本发明实施例提供的回归树预测优化结果示意图;
图3为本发明实施例提供的模型树预测优化结果示意图;
图4为本发明实施例提供的神经网络评估优化结果示意图;
图5为本发明实施例提供的支持向量机评估优化结果示意图。
具体实施方式
下面将结合示意图对本发明的具体实施方式进行更详细的描述。根据下列描述,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
在下文中,如果本文所述的方法包括一系列步骤,本文所呈现的这些步骤的顺序并非必须是可执行这些步骤的唯一顺序,且一些所述的步骤可被省略和/或一些本文未描述的其他步骤可被添加到该方法。
为了解决现有技术中存在的问题,本发明提供了一种合同能源管理项目的预测和评估方法,如图1所示,图1为本发明实施例提供的合同能源管理项目的预测和评估方法的流程图。所述合同能源管理项目的预测和评估方法包括以下步骤:
采集历史合同能源管理项目中的历史数据,包括各种能源的历史数据,例如重点关注风、储、电、充等能源;
对采集到的历史数据进行准备和预处理,形成训练数据集和预测数据集;
根据训练数据集和预测数据集进行训练,采用回归树或模型树建立动态实时预测模型,采用神经网络或支持向量机建立动态实时评估模型;
对预测模型和评估模型进行测试和优化;
待检测项目选择预测模型和/或评估模型进行预测和/或评估。
通过建立动态实时预测模型和评估模型,能够实现项目双方以及第三方等对经济效益进行动态实时预测,对风险进行动态实时评估,从客观上降低项目实施过程中的风险;采用神经网络或支持向量机算法对合同能源管理项目的风险进行评估,由此实现算法对多场景数据环境的适应,完成在多样化数据环境下对项目风险的动态评估,降低项目评估周期,消除信息不对称及风险等;采用树模型对预测值进行分段,树模型是一种局部建模的方法,仅使用局部数据对周围的复杂数据点进行建模,从而极大简化了建模的复杂度,提高了预测模型的准确性和实时性,为项目证券化与产品的市场化交易提供充分的信息支持,从而促进合同能源市场规模成长。
优选的,对采集到的历史数据进行准备包括以下步骤:
首先设置数据有效范围,根据有效范围区分有效和无效的历史数据;
接着将历史数据的逻辑和质量进行抽查,获取逻辑一致性和质量高的历史数据的比例;
接着将采集到的不同来源的历史数据进行组合并共享,例如来自于不同的历史合同能源管理项目中,将不同的历史合同能源管理项目中的历史数据进行组合并共享,并将其中的特定时间戳数据进行可视化;
最后将共享和可视化后的历史数据形式进行变换,变换方式为将历史数据标准化,将历史数据标准化包括以下步骤:将离散的历史数据连续化,并将连续化后的历史数据规格化。
在一个实施例中,特定时间戳数据的准备与可视化预览可以如下:
特定时间戳数据被放置到工作目录下,命名为"project-yymmddtt"thefilel=dir(pattern="^yymmddtt")#在当前工作目录搜索匹配文件名中有"yymmddtt"的项目数据;
projectlist0=lapply(thefilel,read.csv,stringsasfactors=false)#读入数据并将其放入在一个列表(list),若不指定stringsasfactors=false,字符型数据将自动转化为因子;
data=do.call(rbind,projectlist0)#按行合并不同csv文件的项目数据;
str(data)#对数据变量类型进行可视化预览;
'data.frame':50obs.of23variables:
$id:int2356789101112...
$industry:int1112222334...
$province:int2356667822...
$year:int2016201620152016201620162016201620162016...
$risk:int2424124444...
$zprofit:num38.988.297.633.996.9...
$ztime:num79.279.221.56655.8...
$ztype:num77.632.832.825.925.9...
$ztce:num38.910096.23768.5...
$zrate:num36.712.212.218.112.2...
$zbtype:num3962.4393939...
$zptime:num45.210038.426.145.2...
$zprate:num70.2768578.385...
$zfa:num24.924.924.998.476.9...
$zinvest:num40.658.180.431.984...
$zfinance:num91.730.930.930.991.7...
$zfund:num36.182.199.423.158.7...
$zpolicy:num30.830.830.897.530.8...
$zownership:num88.388.320.620.620.6...
$ztech:num73.473.473.473.473.4...
$zpayback:num40.135.839.528.241.6...
$zinflation:num9.151.351.351.351.3...
$zbaserate:num33.233.28933.233.2...
进一步的,对采集到的历史数据进行预处理包括以下步骤:将标准化后的历史数据划分成训练数据集(traindata)和预测数据集(predictdata)。所述划分方式包括按顺序划分或按时间划分,其中按时间划分多用于数据量充沛时。
在一个实施例中,切分如下:
#数据切分
traindata<-data[1:49,]
predictdata<-data[50,]
library(ggplot2)
library(gridextra)
#训练项目经济效益分布
p1<-ggplot(traindata,aes(x=zprofit))+geom_histogram(binwidth=10,colour="white")+ggtitle("训练项目经济效益分布")+theme(plot.title=element_text(hjust=0.5,face="bold"))
#训练数据风险分布
p2<-ggplot(traindata,aes(x=risk))+geom_bar()+ggtitle("训练项目风险等级分布")+theme(plot.title=element_text(hjust=0.5,face="bold"))grid.arrange(p1,p2,nrow=1,ncol=2);
根据训练数据集(traindata)和预测数据集(predictdata)进行训练,采用回归树或模型树建立动态实时预测模型,采用神经网络或支持向量机建立动态实时评估模型,在一个实施例中,可以采用下述方式:
首先准备环境安装、调用和检测环境;
install.packages("devtools",dependencies=t)
library(devtools)
has_devel();
接着创建包的文件夹
create("evaluationtools")
setwd("evaluationtools");
接着生成.r软件,具体包括生成eva_profit和eva_risk函数;
接着编辑evaluationtools软件包的描述文件;
file.edit("description");
最后打包生成对应的.rd文件;
document();
进而建立动态实时预测模型和评估模型。
例如可以在r语言环境下分别安装和调用rpart、rweka、neualnet以及kernlab软件包,利用处理好的历史数据对模型进行训练,建立动态实时预测模型和评估模型;具体可以如下:
合同能源管理项目经济效益的预测模型:
#搭建项目效益预测函数eva_profit
#使用回归树进行训练和预测;
eva_profit(traindata=traindata,predictdata=prodictdata,method=c("rtree");#使用模型树进行训练和预测;
eva_profit(traindata=traindata,predictdata=prodictdata,method=c("mtree")。合同能源管理项目风险的评估模型:
#搭建项目风险评估函数eva_risk
#使用神经网络进行训练和评估;
eva_risk(traindata=traindata,predictdata=prodictdata,method=c("neuralnet");
#使用支持向量机进行训练和评估;
eva_profit(traindata=traindata,predictdata=prodictdata,method=c("svm")。
进一步的,对预测模型和评估模型进行测试包括以下步骤:取测试数据输入所述预测模型和所述评估模型,得到测试结果。得到测试结果之后,还包括以下步骤:对测试结果进行可视化。
在一个实施例中,对测试结果进行可视化可以如下:
经济效益预测结果的可视化:
p.rpart<-predict(m.rpart,data=predictdata,type="vector")
p.rpartd<-data.frame(p.rpart)
p1<-ggplot(p.rpartd,aes(x=p.rpart))+geom_histogram(binwidth=10,colour="white")+ggtitle("项目预测效益分布(回归树)")+theme(plot.title=element_text(hjust=0.5,
face="bold"))
p.m5p<-predict(m.m5p,data=predictdata)
p.m5pd<-data.frame(p.m5p)
p2<-ggplot(p.m5pd,aes(x=p.m5p))+geom_histogram(binwidth=10,colour="white")+ggtitle("项目预测效益分布(模型树)")+theme(plot.title=element_text(hjust=0.5,
face="bold"))
grid.arrange(p1,p2,nrow=1,ncol=2);
项目风险评估结果的可视化:
进一步的,对预测模型和评估模型进行优化包括以下步骤:根据可视化的测试结果调整所述预测模型和所述评估模型的参数,得到优化后的预测模型和评估模型。
在一个实施例中,如图2至5所示,图2为本发明实施例提供的回归树预测优化结果示意图;图3为本发明实施例提供的模型树预测优化结果示意图;图4为本发明实施例提供的神经网络评估优化结果示意图;图5为本发明实施例提供的支持向量机评估优化结果示意图。对预测模型和评估模型进行优化可以如下:
对于预测模型的优化:
#回归树预测性能优化
cor(p.rpart,traindata$zprofit)
[1]0.8730788
plot(traindata$zprofit,p.rpart);
#模型树预测性能优化
cor(p.m5p,traindata$zprofit)
[1]0.9342939
plot(traindata$zprofit,p.m5p);
对于评估模型的优化:
#神经网络评估性能优化
risk<-as.numeric(traindata$risk)
cor(risk,p)
[1]0.8594547
plot(risk,p);
#支持向量机评估性能优化
综上,在本发明所提供的合同能源管理项目的预测和评估方法中,通过建立动态实时预测模型和评估模型,能够实现项目双方以及第三方等对经济效益进行动态实时预测,对风险进行动态实时评估,从客观上降低项目实施过程中的风险;并采用神经网络或支持向量机算法对合同能源管理项目的风险进行评估,由此实现算法对多场景数据环境的适应,完成在多样化数据环境下对项目风险的动态评估,降低项目评估周期,消除信息不对称及风险等;采用树模型对预测值进行分段,树模型是一种局部建模的方法,仅使用局部数据对周围的复杂数据点进行建模,从而极大简化了建模的复杂度,提高了预测模型的准确性和实时性。
通过经济效益预测和风险评估可以让项目运营方以公允价格进行销售,也让金融市场的投资者能够以公允价格进行购买,从而促进项目证券化的市场化可持续发展,因此通过科学的预测收益和评估风险,能为发行者与投资者提供金融专业知识上的技术支持,高效的促进金融资源的有效配置。为项目证券化与产品的市场化交易提供充分的信息支持,从而促进合同能源市场规模成长。
上述仅为本发明的优选实施例而已,并不对本发明起到任何限制作用。任何所属技术领域的技术人员,在不脱离本发明的技术方案的范围内,对本发明揭露的技术方案和技术内容做任何形式的等同替换或修改等变动,均属未脱离本发明的技术方案的内容,仍属于本发明的保护范围之内。