基于MATLAB的BP神经网络设计预测滑坡灾害问题

本人准备使用BP神经网络做地质灾害滑坡预测,现在收集到了100组滑坡数据(坡体都是已经产生滑动了),要预测40组坡体是否会滑坡。
我现在设计个BP预测的网络,但是我发现,我野外收集100组数据都是已经滑坡,去预测40组还未滑坡数据,这样的预测是不是不科学?是否应该在网络训练时添加稳定坡体、欠稳定坡体两种数据给网络训练,如果是要添加,得添加多少组数据才科学。
本人刚使用BP,很多不明白之处,所以求大师帮助。求大师,请不要打酱油忽悠,感谢。

解决好如下几个问题:

①输入层:输入特征量个数,特征量。比如输入层为[x1 x2 x3]T。应有到山体滑坡就是刻画表征山体滑坡的特征量,这些量要归一化处理。
②隐含层:设置多少层隐含层,百度下有相关计算公式来确定。
③权值修正迭代算法,选择什么样的算法是输入尽快逼近输出,且误差最小
④输出层:输出的情况有多少种,该实体对象的状态。比如滑坡,未滑坡。
⑤样本的选取:样本要涵盖所有的输出,样本数量理论上越多越好。也可根据情况选择,尽量是输出情况对应的输入样本比例接近。
举个实例:
比如车型划分,主要划分为大车、小车两类。
输入层就是车型划分的特征量:比如选车长、轴数、车高三个特征量,那么输入层为3,[车长 轴数 车高]T
隐含层:设置可以设为5.设置太少不好。具体参照公式
迭代算法:可选择梯度下降法
输出层:也就是我们实体的状况:2中车型,大车 小车。可以定为[1 0]T
[0 1]T
样本大小车[车长 轴数 车高]形成的特征输入,控制大小车样本接近1:1.
如上确定好了后,形成了3*5*2的bp网络。训练即可。
参考如下实例:地震bp预测
http://wenku.baidu.com/view/856fa45f3b3567ec102d8a2d.html追问

谢谢你的回答,这几天有事去了,没来得急看您的回答。我还向您提下问题可以不?我会增加30个赏金。
一、我看BP做预测,MATLAB7.1工具箱里面有BP网络的模型,但是我发现很多文章都是写的程序,为什么都去写程序?何不直接用MATLAB工具箱?
二、样本的选取是不是有什么规定?比如100个样本,有95个是滑坡、5个不是滑坡,这样的样本能做科学预测吗?

追答

一、matlab nntool工具箱是可以实现各种神经网络的训练预测的。但你要用的好,知道各个参数的选取和选取后的效果。自己编写,可控性高点,自己明白整个过程。用工具箱操作起来不太灵活,在程序移植用于预测模拟的时候不太方便。此外,工具箱中有些莫名其妙的错误,给好了输出,设好了参数就是报错。
二、选取样本应考虑以下五点:
(1)遍历性,即选取出来的样本要有代表性,能覆盖全体样本空间; 注意要全体样本空间。
(2)相容性,即选取出来的样本不能自相矛盾,在建立输入、输出学习样 本时,分级宜散但不宜过细,以防止样本间出现矛盾现象;
(3)致密性,选取出来的样本要有一定的数量,以保证训练的效果;一般建议样本的选取数量均匀随机。训练过程中打乱样本的
(4)相关性,即训练样本中各输入值与目标值要有一定的相关性,训练样 本集合中输入参数之间最好线性无关。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-12-11
您好 我目前也在进行基于MATLAB的BP神经网络设计预测滑坡灾害方面的学习,有一些问题,请问方便加您的QQ请教下吗?谢谢