Main Content

Questa pagina è stata tradotta con la traduzione automatica. Fai clic qui per vedere l'ultima versione in inglese.

Traccia l'istogramma degli errori per una rete neurale

Questo esempio mostra come visualizzare gli errori tra i valori target e i valori previsti dopo aver addestrato una rete neurale feedforward.

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). Leggi 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 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). Calcola il valore intermedio "gamma" e assegna 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

Utilizza 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. Utilizza la funzione train per addestrare la rete feedforward utilizzando gli input.

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

Utilizza 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.

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

   22.8618

Traccia l'istogramma degli errori

Calcola 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 contenitori.

Vedi anche

Funzioni