创建并训练前馈神经网络
此示例显示如何训练前馈神经网络来预测温度。
从气象站 ThingSpeak 通道读取数据
ThingSpeak™ 通道 12397 包含来自位于马萨诸塞州纳蒂克的 MathWorks® 气象站的数据。每分钟收集一次数据。字段 2、3、4 和 6 分别包含风速(mph)、相对湿度、温度(F)和大气压力(inHg)数据。使用 thingSpeakRead 函数从通道 12397 读取数据。
data = thingSpeakRead(12397,'Fields',[2 3 4 6],'DateRange',[datetime('January 7, 2018'),datetime('January 9, 2018')],... 'outputFormat','table');
分配输入变量和目标值
分配输入变量,并根据温度和相对湿度计算露点作为目标。将温度从华氏度转换为摄氏度,并指定水蒸气(b)和气压(c)的常数。计算中间值 'gamma',并为网络分配目标值。
inputs = [data.Humidity'; data.TemperatureF'; data.PressureHg'; data.WindSpeedmph']; tempC = (5/9)*(data.TemperatureF-32); b = 17.62; c = 243.5; gamma = log(data.Humidity/100) + b*tempC ./ (c+tempC); dewPointC = c*gamma ./ (b-gamma); dewPointF = (dewPointC*1.8) + 32; targets = dewPointF';
创建并训练两层前馈网络
使用 feedforwardnet 函数创建一个两层前馈网络。该网络有一个包含 10 个神经元的隐藏层和一个输出层。使用 train 函数利用输入来训练前馈网络。
net = feedforwardnet(10);
net.trainParam.showWindow = false; % Turn off display progress dialog.
[net,tr] = train(net,inputs,targets);
使用训练好的模型预测数据
在网络经过训练和验证后,您可以使用网络对象来计算对任何输入的网络响应,在本例中为第五个输入数据点的露点。
output = net(inputs(:,5))
output = -15.6383
另请参阅
函数
train(Deep Learning Toolbox) |feedforwardnet(Deep Learning Toolbox) |thingSpeakRead