农田有效灌溉面积的预测方法及应用

2019-12-04 05:38栏目:龙竞技官网
TAG:

  学士毕业从前已经对依靠LSTM循环神经网络的股票价格预测方法开展过小小的商讨,趁着方今干活不忙,把在那之中的生机勃勃有的剧情写下去做以记录。

引自:

农田有效灌注面积指有固定水源、浇水工程设施配套、土地平整、在相像年景下能够进行例行灌水的田地面积,包罗机灌面积、电力排水灌水面积、自流浇水面积和喷灌面积[1]。它是反映农水建设和水利化的第一指标,也是国内外市段拟订水利发展设计的机要指标之生机勃勃。对水浇地有效灌注面积进行远望可认为领会以后农水根基设备的建设情状提供有价值的参阅新闻,同一时间也可为相关部门创制制订行当前行设计提供辩解支持。

 

 

1 预测方案的鲜明与估算方法的精选

  本次股价预测模型仅依照股票(stock卡塔尔(英语:State of Qatar)的野史数据来树立,不思考音信面对个人股的震慑。曾有倭国行家使用深度学习的艺术来对当天的资源信息内容开展分析,以咬定其对股票价格正面性/消极面性影响,并将其与证券的历史数据相结合,各自授予一定的权重来对新近的股票价格进行预后[1]。该预测方法拿到了明确的机能。

汉语文书档案: 
法定文书档案: 
文书档案首假使以keras2.0。

1.1 预测方案的明确

  而那边笔者从不引进音信面包车型大巴影响,首要由于以下几点思量:


田地有效灌溉面积的变动受多地方因素的影响,比方政策、大旨财政资金投入、地点财政资金投入、乡下人收入情况等。这个成分并非孤立地对土地有效灌注面积爆发影响,而是耦合在一同以非线性的章程影响土地有效灌水面积的扭转。

  1.新闻的及时性难以管教:非常多时候,在贰头期货的利好/利空消息出来早前,其股价已经有了异常的大开间的狠抓/下落。音讯的不对称性导致普通公众缺少直接信息源。

.

农田有效灌注面积的前瞻有两大类方案:生机勃勃种为构造式的预测方法,正是通过自然的秘籍确立起各首要影响因素与土地有效灌注面积之间的涉嫌,然后依据今后各影响因素的变通去预测相呼应的农田有效灌水面积;另意气风发种为数据系列预测法,就是将各年度的水田有效灌注面积数值作为接二连三的时刻体系对待,能够感到土地有效灌注面积的变化规律已经包括在多少体系之中,再利用合适的点子对该体系在以往的取值举办前瞻。

  2.消息的准头难以保障:互联网上音信传播速度一点也不慢,媒体之间经常汇合世相互抄袭音讯的状态,而这种抄来的音讯(非原创音信卡塔尔(英语:State of Qatar)往往未有经过严厉的核实,存在着内容虚假,夸大宣传的恐怕。风度翩翩旦解析模型错用了某条浮言或真实不高的新闻,很有相当的大也许得出错误的前瞻结果。

Keras系列:

1、keras连串︱Sequential与Model模型、keras基本组织功效(大器晚成) 
2、keras连串︱Application中七款已练习模型、VGG16框架(Sequential式、Model式)解读(二) 
3、keras体系︱图像多分类练习与使用bottleneck features进行微调(三) 
4、keras体系︱人脸表情分类与识别:opencv人脸质量评定+Keras心思分类(四) 
5、keras连串︱迁移学习:利用英斯ptionV3进行fine-tuning及预测、完整案例(五)


在第后生可畏种方案中,首先供给规定具体影响土地有效灌水面积变化的要素连串及其影响规律,其余还亟需对各因素的前景生成进行预测。正确地规定影响土地有效灌注面积变化的种种因素本人就很有难度,各要素对有效灌注面积影响规律的分辨也同样是一个相比复杂的标题,而猜度各要素今后的浮动更是一个差非常少和预测农田有效灌水面积难度万分的主题材料。在第三种方案中,首先要求树立起能够丰裕反映农田有效灌注面积变化规律的预测模型,然后通过求取该预测模型在现在的输出值就可以兑现预测。二种方案相比较,分明第三种方案更便于达成。因而,在偏下研讨中运用数据种类预测方案。

  3.语言的歧义性:一条情报,其正面性/消极的一面性往往存在着冒尖解读。例如“习总书记发布中黄炎子孙民共和国将裁减军备30万”——新华每一天电子通信贰零壹肆.09.04。那条情报日常意义上得以解读为:大旨政党深切拉动改换,精打细算,大力发展国防军事工业工作。那是生龙活虎种正面性的解读。而在运用机器学习模型时,如守旧的奇怪值分解算法(SVD卡塔尔(英语:State of Qatar),很有相当的大希望会判断其与“二〇一八年五大行裁员近3万”这种音讯具备较高的相通度,因此将其分割为消极的一面信息。

零、keras介绍与核心的模型保存

写成了思虑导图,便于观看与掌握。

1.2 预测方法的取舍

  4.手艺实现比较混乱:那实际上是三个特别关键的缘由啦~,获取科学的音信并展开NLP操作,往往须求通过以下流程:人工浏览网页明确稳固可信的音讯源→设计爬虫达成效能新闻的得到→设计新闻裁剪(填充卡塔尔方案以回应不一样长短的新闻→人工注脚信息的正/负性(也得以用当日股票价格大喜大悲来标明卡塔尔→设计网络模型→操练及表明模型。在那之中的每一步都丰硕麻烦耗时,并且对于个人股来讲,并不是天天都会有音讯现身。

1.keras网络布局

图片 1

在数码系列的张望中,这两天周边使用的格局有运动平均法、指数平滑法、线性回归法、浅暗蓝预测法、神经网络法和扶持向量机方法等。那几个格局中神经网络法和支撑向量机方法从精气神上的话越发相符选用于非线性预测难点。而土地有效灌水面积所结合的数码种类是多少个标准的非线性种类。鲜明在该钻探中利用神经网络法和支撑向量机方法比较合适。为了尽量切磋那三种方法的适用性,以下对那二种办法开展自己检查自纠深入分析。

 

2.keras网络安顿

图片 2
个中回调函数callbacks应该是keras的精粹~

2 三种预测方法的说理幼功及特点剖析

  下面说了如此多,还尚无从头对自笔者那一个预测模型举行介绍,上边起先走入正题。在决定排除音信面包车型地铁勘测之后,笔者开首讨论股票价格大起大落的原形,作者觉着股票价格便是资本博艺结果的显示。本次构造建设的估摸模型,朴素的主张是透过深度学习模型来侦查破案庄家的操作原理,对拉升、砸盘的景况开展预后。为了达到以下指标,笔者主宰取舍以下三个特点来营造互联网模型,即:

3.keras预管理成效

图片 3

2.1 BP神经互联网预测的答辩底蕴及特色分析

上涨或下跌低的幅度  最高升幅  最低降幅  大单净流入  中单净流入  小单净流入  换另一只手率

4、模型的节点音信提取

# 节点信息提取
config = model.get_config()  # 把model中的信息,solver.prototxt和train.prototxt信息提取出来
model = Model.from_config(config)  # 还回去
# or, for Sequential:
model = Sequential.from_config(config) # 重构一个新的Model模型,用去其他训练,fine-tuning比较好用

在各个神经互联网中,BP神经网络堪当最杰出、使用最为遍布的风流潇洒种神经网络[2,3]。

动用那多个特色来对证券的上涨或下落情况以及花销的流淌状态树立适当的模子。别的,其余的目的相符MACD、均线等也是通过有个别根基数据的演算得出,在营造立模型型时并从未将其放入考虑衡量范围。

5、 模型概况查询(包罗权重查询)

# 1、模型概括打印
model.summary()

# 2、返回代表模型的JSON字符串,仅包含网络结构,不包含权值。可以从JSON字符串中重构原模型:
from models import model_from_json

json_string = model.to_json()
model = model_from_json(json_string)

# 3、model.to_yaml:与model.to_json类似,同样可以从产生的YAML字符串中重构模型
from models import model_from_yaml

yaml_string = model.to_yaml()
model = model_from_yaml(yaml_string)

# 4、权重获取
model.get_layer()      #依据层名或下标获得层对象
model.get_weights()    #返回模型权重张量的列表,类型为numpy array
model.set_weights()    #从numpy array里将权重载入给模型,要求数组具有与model.get_weights()相同的形状。

# 查看model中Layer的信息
model.layers 查看layer信息

BP神经互连网是抽样误差反向传来(Back error propagation,简单的称呼BP)神经互连网的简单称谓。BP神经网络常常由1个输入层、若干隐含层和1个输出层组成,在每层中能够富含若干个神经元。各相邻层神经元之间多为全连接格局,而同层神经元之间则无连接[4]。各神经元间的连天传递相应的权值,隐含层及输出层各神经元都有自个儿的阈值。BP神经互连网充当风流洒脱种前馈互联网,具有前馈互联网的共性。研讨评释,三层前馈互联网就可以预知以随机精度靠拢大肆一而再函数及其各阶导数[5]。对队列实行建立模型,从本质上来讲即是收获体系的变迁泛函,BP神经互连网的函数围拢成效赶巧能够兑现此进程。

 

6、模型保存与加载

model.save_weights(filepath)
# 将模型权重保存到指定路径,文件类型是HDF5(后缀是.h5)

model.load_weights(filepath, by_name=False)
# 从HDF5文件中加载权重到当前模型中, 默认情况下模型的结构将保持不变。
# 如果想将权重载入不同的模型(有些层相同)中,则设置by_name=True,只有名字匹配的层才会载入权重.

但BP神经互联网也设有多少欠缺,此中相比优质的是互联网布局的不利分明、易限于局地收敛和未有速度慢。当中互联网构造的不易明确是指在规定互联网布局参数的经过中绝非确切的凭仗能够信守。而局地收敛则对BP神经网络的函数围拢效能影响非常大。

风流倜傥.源数目及其预管理

7、怎么着在keras中设定GPU使用的抑扬顿挫

本节发源:深度学习theano/tensorflow多显卡多少人接收难题集(参见:Limit the resource usage for tensorflow backend · Issue #1538 · fchollet/keras · GitHub) 
在行使keras时候会冒出三回九转占满GPU显存的境况,能够因此重设backend的GPU占用意况来进展调试。

import tensorflow as tf
from keras.backend.tensorflow_backend import set_session
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.3
set_session(tf.Session(config=config))

 

亟需留意的是,即便代码或安插范围设置了对显存占用百分比阈值,但在实质上运作中风度翩翩经达到了这一个阈值,程序有必要的话如故会突破这一个阈值。换来讲之假使跑在贰个大额集上如故会用到更加多的显存。以上的显存约束只是为了在跑小数目集时防止对显存的浪费而已。(前年十月二日补充)

2.2 援助向量机预测的说理底子及特点深入分析

  通过某股票交易软件,小编收获的源数据约有20来个特征,包括:上涨的幅度、现价、涨跌、买入、卖价、成交量等等。为了得到地点所述的八种特色,筛选出上涨或下跌幅、大单净流入、中单净流入、小单净流入、换另一只手率那5性子状,并寻思最高增长幅度、最高降低的幅度七个特点。通过下列公式总计获得。

8.更不错地模型操练与模型保存

filepath = 'model-ep{epoch:03d}-loss{loss:.3f}-val_loss{val_loss:.3f}.h5'
checkpoint = ModelCheckpoint(filepath, monitor='val_loss', verbose=1, save_best_only=True, mode='min')
# fit model
model.fit(x, y, epochs=20, verbose=2, callbacks=[checkpoint], validation_data=(x, y))

 

save_best_only张开之后,会如下:

 ETA: 3s - loss: 0.5820Epoch 00017: val_loss did not improve

 

如果val_loss 提升了就能够保留,未有升高就不会保留。

3 预测模型的构建

图片 4

9.如何在keras中使用tensorboard

    RUN = RUN + 1 if 'RUN' in locals() else 1   # locals() 函数会以字典类型返回当前位置的全部局部变量。

    LOG_DIR = model_save_path + '/training_logs/run{}'.format(RUN)
    LOG_FILE_PATH = LOG_DIR + '/checkpoint-{epoch:02d}-{val_loss:.4f}.hdf5'   # 模型Log文件以及.h5模型文件存放地址

    tensorboard = TensorBoard(log_dir=LOG_DIR, write_images=True)
    checkpoint = ModelCheckpoint(filepath=LOG_FILE_PATH, monitor='val_loss', verbose=1, save_best_only=True)
    early_stopping = EarlyStopping(monitor='val_loss', patience=5, verbose=1)

    history = model.fit_generator(generator=gen.generate(True), steps_per_epoch=int(gen.train_batches / 4),
                                  validation_data=gen.generate(False), validation_steps=int(gen.val_batches / 4),
                                  epochs=EPOCHS, verbose=1, callbacks=[tensorboard, checkpoint, early_stopping])

 

都以在回调函数中起成效:

  • EarlyStopping patience:当early 
    (1)stop被激活(如觉察loss比较上叁个epoch练习未有下落),则透过patience个epoch后停下练习。 
    (2)mode:‘auto’,‘min’,‘max’之生机勃勃,在min方式下,如果检查评定值甘休下滑则中止练习。在max情势下,当检查实验值不再回涨则停止练习。

  • 模型检查点ModelCheckpoint  
    (1)save_best_only:当设置为True时,将只保留在验证集上质量最佳的模型 
    (2) mode:‘auto’,‘min’,‘max’之一,在save_best_only=True时决定质量最棒模型的评定准绳,比如,当监测值为val_acc时,形式应该为max,当检查评定值为val_loss时,情势应该为min。在auto方式下,评价准则由被监测值的名字自动估测计算。 
    (3)save_weights_only:若设置为True,则只保留模型权重,不然将保留整个模型(包涵模型构造,配置音信等) 
    (4)period:CheckPoint之间的间距的epoch数

  • 可视化tensorboard write_images: 是不是将模型权重以图纸的样式可视化

别的剧情可参看keras中文文书档案

.


3.1 样板数量的预备

经过管理的股票特征数据存款和储蓄在 股票(stock卡塔尔国名.csv文件中,近似下图:

生机勃勃、Sequential 序贯模型

序贯模型是函数式模型的简略版,为最简便的线性、从头至尾的协会顺序,不分开。

从吉林总计年鉴中收集了1988-2008年广东省农田有效灌注面积的总计数据[10]。为了减弱预测模型的复杂程度,选择峰值法对这一个数量开展了归朝气蓬勃化管理。将归生龙活虎化后的一九八六-2008年数量作为练习样品,2010年数目作为考验样板。

 图片 5

Sequential模型的大旨组件

诚如要求:

  • 1、model.add,添加层;
  • 2、model.compile,模型锻练的BP形式设置;
  • 3、model.fit,模型练习参数设置 + 操练;
  • 4、模型评估
  • 5、模型预测

规定预测模型每回的输入样品中带有6个数据,即用接二连三6年的数码预测第四年的数码。据此可建构练习时的输入样品矩阵(6×18)和输出样品向量(1×18)。

图中的特征顺序为:日期,大单净流入,中单净流入,小单净流入,上涨或下跌低的幅度,最高上升的幅度,最高降低的幅度,换其它一只手率,股票价格。股票价格在这里处的用项是东挪西凑训练样板输出时,总计多日的总上涨或下落幅。

1. add:添加层——train_val.prototxt

add(self, layer)

# 譬如:
model.add(Dense(32, activation='relu', input_dim=100))
model.add(Dropout(0.25))

 

add里面唯有层layer的原委,当然在序贯式里面,也能够model.add(other_model)加载其余模型,在函数式里面就不太近似,详见函数式。

3.2 预测模型基本参数的分明与教练

注:在对源数据开展管理的时候,平常会遇见空值难点:即,有个别特征值为0的时候,系统提交的源数据为”-”或”“。供给张开出格管理。(平日遇见新上市股票(stock卡塔尔(قطر‎第一天的上涨或下降低的幅度为空,或某交易日大单净流入为空。卡塔尔国

2、compile 练习情势——solver.prototxt文件

compile(self, optimizer, loss, metrics=None, sample_weight_mode=None)

 

其中: 
optimizer: 字符串(预订义优化器名)或优化器对象,参谋优化器 
loss: 字符串(预约义损失函数名)或目的函数,参考损失函数 
metrics: 列表,包括评估模型在教练和测验时的互联网品质的目标,规范用法是metrics=[‘accuracy’] 
sample_weight_mode:假使您须求准时间步为样板赋权(2D权矩阵),将该值设为“temporal”。 
默以为“None”,代表按样品赋权(1D权)。在底下fit函数的演说中有连锁的参阅剧情。 
kwargs: 使用TensorFlow作为后端请忽视该参数,若使用Theano作为后端,kwargs的值将会传送给 K.function

注意: 
模型在运用前必须编译,不然在调用fit或evaluate时会抛出相当。

1)BP神经网络基本参数的规定与锻练。明确BP神经网络的盈盈层数为1,输入层神经元数为6,输出层神经元数为1,隐含层神经元数为11。隐含层和输出层的慰勉函数分别接纳正切型Sigmoid函数和对数型Sigmoid函数。为了抓好收敛速度,练习时使用了Levenberg-Marquardt数值优化算法。

版权声明:本文由龙竞技官网发布于龙竞技官网,转载请注明出处:农田有效灌溉面积的预测方法及应用