Main Content

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la versión original en inglés.

Crear y entrenar una red neuronal feedforward

Este ejemplo muestra cómo entrenar una red neuronal feedforward para predecir la temperatura.

Leer datos de la estación meteorológica ThingSpeak Channel

El canal 12397 de ThingSpeak™ contiene datos de la estación meteorológica MathWorks®, ubicada en Natick, Massachusetts. Los datos se recopilan una vez cada minuto. Los campos 2, 3, 4 y 6 contienen datos de velocidad del viento (mph), humedad relativa, temperatura (F) y presión atmosférica (inHg), respectivamente. Lea los datos del canal 12397 usando el thingSpeakRead función.

data = thingSpeakRead(12397,'Fields',[2 3 4 6],'DateRange',[datetime('January 7, 2018'),datetime('January 9, 2018')],...
    'outputFormat','table');

Asignar variables de entrada y valores objetivo

Asigne variables de entrada y calcule el punto de rocío a partir de la temperatura y la humedad relativa para usar como objetivo. Convierta la temperatura de Fahrenheit a Celsius y especifique las constantes para el vapor de agua (b) y la presión barométrica (c). Calcule el valor intermedio 'gamma' y asigne valores objetivo para la red.

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';

Crear y entrenar la red feedforward de dos capas

Utilizar el feedforwardnet función para crear una red feedforward de dos capas. La red tiene una capa oculta con 10 neuronas y una capa de salida. Utilizar el train para entrenar la red feedforward usando las entradas.

net = feedforwardnet(10);
[net,tr] = train(net,inputs,targets);

Usar el modelo entrenado para predecir datos

Después de entrenar y validar la red, puede usar el objeto de red para calcular la respuesta de la red a cualquier entrada, en este caso, el punto de rocío para el quinto punto de datos de entrada.

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

  -15.6383

Consulte también

Funciones