Main Content

Questa pagina è stata tradotta con la traduzione automatica. Fai clic qui per vedere l’originale in inglese.

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