Main Content

Cette page a été traduite par traduction automatique. Cliquez ici pour voir la dernière version en anglais.

Créer et former un réseau de neurones Feedforward

Cet exemple montre comment entraîner un réseau de neurones à anticipation pour prédire la température.

Lire les données de la station météo ThingSpeak Channel

Le canal ThingSpeak ™ 12397 contient les données de la station météo MathWorks®, située à Natick, Massachusetts. Les données sont collectées une fois par minute. Les champs 2, 3, 4 et 6 contiennent respectivement des données sur la vitesse du vent (mph), l'humidité relative, la température (F) et la pression atmosphérique (inHg). Lisez les données du canal 12397 à l'aide de la fonction thingSpeakRead.

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

Attribuer des variables d'entrée et des valeurs cibles

Attribuez des variables d'entrée et calculez le point de rosée à partir de la température et de l'humidité relative à utiliser comme cible. Convertissez la température de Fahrenheit en Celsius et spécifiez les constantes pour la vapeur d'eau (b) et la pression barométrique (c). Calculez la valeur intermédiaire « gamma » et attribuez des valeurs cibles pour le réseau.

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

Créer et former le réseau Feedforward à deux couches

Utilisez la fonction feedforwardnet pour créer un réseau de rétroaction à deux couches. Le réseau a une couche cachée avec 10 neurones et une couche de sortie. Utilisez la fonction train pour entraîner le réseau feedforward à l'aide des entrées.

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

Utiliser le modèle formé pour prédire les données

Une fois le réseau formé et validé, vous pouvez utiliser l'objet réseau pour calculer la réponse du réseau à n'importe quelle entrée, dans ce cas le point de rosée pour le cinquième point de données d'entrée.

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

  -15.6383

Voir aussi

Fonctions