Main Content

本页采用了机器翻译。点击此处可查看英文原文。

创建和训练前馈神经网络

此示例演示如何训练前馈神经网络来预测温度。

从气象站 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,tr] = train(net,inputs,targets);

使用经过训练的模型来预测数据

网络经过训练和验证后,您可以使用网络对象来计算网络对任何输入的响应,在本例中为第五个输入数据点的露点。

output = net(inputs(:,5))
output =

  -15.6383

另请参阅

函数