Creare e addestrare una rete neurale feedforward
Questo esempio mostra come addestrare una rete neurale feedforward per prevedere la temperatura.
Leggi i dati dal canale ThingSpeak della stazione meteorologica
Il canale ThingSpeak™ 12397 contiene i dati della stazione meteorologica MathWorks® , situata a Natick, Massachusetts. I dati vengono raccolti una volta ogni minuto. I campi 2, 3, 4 e 6 contengono rispettivamente i dati sulla velocità del vento (mph), sull'umidità relativa, sulla temperatura (F) e sulla pressione atmosferica (inHg). Leggere i dati dal canale 12397 utilizzando la funzione thingSpeakRead
.
data = thingSpeakRead(12397,'Fields',[2 3 4 6],'DateRange',[datetime('January 7, 2018'),datetime('January 9, 2018')],... 'outputFormat','table');
Assegnare variabili di input e valori target
Assegna variabili di input e calcola il punto di rugiada dalla temperatura e dall'umidità relativa da utilizzare come target. Converti la temperatura da Fahrenheit a Celsius e specifica le costanti per il vapore acqueo (b) e la pressione barometrica (c). Calcolare il valore intermedio "gamma" e assegnare i valori target per la rete.
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';
Crea e addestra la rete feedforward a due livelli
Utilizzare la funzione feedforwardnet
per creare una rete feedforward a due livelli. La rete ha uno strato nascosto con 10 neuroni e uno strato di output. Utilizzare la funzione train
per addestrare la rete feedforward utilizzando gli input.
net = feedforwardnet(10); [net,tr] = train(net,inputs,targets);
Utilizzare il modello addestrato per prevedere i dati
Dopo che la rete è stata addestrata e convalidata, è possibile utilizzare l'oggetto di rete per calcolare la risposta della rete a qualsiasi input, in questo caso il punto di rugiada per il quinto punto dati di input.
output = net(inputs(:,5))
output = -15.6383
Vedi anche
Funzioni
train
(Deep Learning Toolbox) |feedforwardnet
(Deep Learning Toolbox) |thingSpeakRead