Contenuto principale

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

Istogramma degli errori di tracciamento per una rete neurale

Questo esempio mostra come visualizzare gli errori tra i valori target e i valori previsti dopo l'addestramento di una rete neurale feedforward.

Leggi i dati dal canale della stazione meteorologica ThingSpeak ™

Il canale 12397 di ThingSpeak contiene dati provenienti dalla stazione meteorologica MathWorks ®, situata a Natick, Massachusetts. I dati vengono raccolti una volta al minuto. I campi 2, 3, 4 e 6 contengono rispettivamente i dati relativi alla velocità del vento (mph), all'umidità relativa, alla temperatura (F) e alla pressione atmosferica (inHg). Leggere i dati dal canale 12397 utilizzando la funzione thingSpeakRead.

data = thingSpeakRead(12397,'Fields',[2 3 4 6],'Numpoints',500,'outputFormat','table');

Assegna variabili di input e valori di destinazione

Assegnare variabili di input e calcolare il punto di rugiada dalla temperatura e dall'umidità relativa da utilizzare come target. Convertire la temperatura da Fahrenheit a Celsius e specificare 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';

Creare e addestrare 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 aver addestrato e convalidato la rete, è 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.

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

   22.8618

Tracciare l'istogramma degli errori

Calcolare i valori di errore come differenza tra i valori target e i valori previsti.

error = targets - outputs;
number_of_bins = 10;
ploterrhist(error,'bins',number_of_bins);

Il grafico mostra un istogramma di errore con 10 intervalli.

Vedi anche

Funzioni