MATLAB神经网络简单预测--气体传感器

很多模式或关系不清晰的情况下,比较适合用神经网络。关于神经网络本身,最近发展的很快,应用也越来越广,自行谷歌。
本文使用的为最为流行的前馈神经网络(feed-forward neural network),网络各层使用默认的Sigmoid函数,以气体传感器为例简单介绍下MATLAB神经网络工具箱的使用。
我们有下面的数据原始电压CO_diff和温湿度(Temp和Humi)为神经网络训练输入,对应的标准气体浓度CO_ref为训练目标(target),然后我们用训练后生成的方程去预测未来不同温度湿度条件下,不同CO原始响应电压对应的浓度。


MATLAB神经网络简单预测--气体传感器_第1张图片
1. 复制CO_diff、Temp和Humi三个输入元素到CO_input变量,CO_ref到CO_ref变量,然后转置下,因为MATLAB走的是列。
CO_input = CO_input'
CO_ref =CO_ref'
MATLAB神经网络简单预测--气体传感器_第2张图片
2.打开神经网络 拟合工具箱
MATLAB神经网络简单预测--气体传感器_第3张图片
MATLAB神经网络简单预测--气体传感器_第4张图片
3. 选上input和Target
MATLAB神经网络简单预测--气体传感器_第5张图片
4. 选择训练的样本量,用作validation的样本量和作为最后的自检的样本量,样本少的时候建议training的样本要多一些
MATLAB神经网络简单预测--气体传感器_第6张图片
5.选择隐藏层的数量,这个可以先默认10,回头误差大相关性不好的时候再过来改,一般来说不要太多,具体看相关文章。
MATLAB神经网络简单预测--气体传感器_第7张图片
6.Train,每次train都会有些许变化的,重点看MSE和R如何,如果保持较好就可以。否则要回到上一步。也可以通过编程来评估,譬如每个隐藏层选择train 100次,然后看好的MSE和R出现的概率。
MATLAB神经网络简单预测--气体传感器_第8张图片
7. 生成函数,用以预测。这里我用的MATLAB Matrix-only Function,点一下即可。上面那个MATLAB Function也是一样的,不过可以做成单独的应用更方便些,里面代码大部分都一样的。
MATLAB神经网络简单预测--气体传感器_第9张图片
MATLAB神经网络简单预测--气体传感器_第10张图片
MATLAB神经网络简单预测--气体传感器_第11张图片
改函数名:
MATLAB神经网络简单预测--气体传感器_第12张图片
8. 测试下,按照顺序把下面的CO_diff和Temp,Humi放到CO_test_input这个变量里。然后直接 CO_test_output = ANN_CO(CO_test_input); 即可
MATLAB神经网络简单预测--气体传感器_第13张图片
输出如下:
MATLAB神经网络简单预测--气体传感器_第14张图片
5分钟移动平均的趋势图:
MATLAB神经网络简单预测--气体传感器_第15张图片

你可能感兴趣的:(MATLAB神经网络简单预测--气体传感器)