このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
誤差のヒストグラムのプロット
この例では、フィードフォワード ニューラル ネットワークを学習させた後に、ターゲット値と予測値の間の誤差を可視化する方法を説明します。
メモ
この例を実行するには、Deep Learning Toolbox を使用するライセンスの与えられた MathWorks アカウントにログインしていなければなりません。
気象計の ThingSpeak チャネルからのデータの読み取り
ThingSpeak™ のチャネル 12397 には、マサチューセッツ州ネイティックにある MathWorks® の気象計のデータが含まれています。データは 1 分ごとに収集されます。Field 2、3、4、および 6 には、風速 (mph)、相対湿度、気温 (F)、および大気圧 (hg) のデータがそれぞれ含まれています。関数 thingSpeakRead
を使用して、チャネル 12397 からデータを読み取ります。
data = thingSpeakRead(12397,'Fields',[2 3 4 6],'Numpoints',500... 'outputFormat','table'); % Assign input variables inputs = [data.Humidity'; data.TemperatureF'; data.PressureHg'; data.WindSpeedmph']; % Calculate dew point from temperature and relative humidity to use as the target % Convert temperature from Fahrenheit to Celsius tempC = (5/9)*(data.TemperatureF-32); % Specify the constants for water vapor (b) and barometric pressure (c) b = 17.62; c = 243.5; % Calculate the intermediate value 'gamma' gamma = log(data.Humidity/100) + b*tempC ./ (c+tempC); % Calculate dew point in Celsius dewPointC = c*gamma ./ (b-gamma); % Convert to dew point in Fahrenheit dewPointF = (dewPointC*1.8) + 32; % Assign target values for the network targets = dewPointF';
2 層フィードフォワード ネットワークの作成
関数 feedforwardnet
を使用して、2 層フィードフォワード ネットワークを作成します。このネットワークには、10 単位のニューロンをもつ隠れ層が 1 つと出力層があります。
net = feedforwardnet(10);
フィードフォワード ネットワークの学習
関数 train
を使用して、フィードフォワード ネットワークに学習させます。
[net,tr] = train(net,inputs,targets);
学習済みモデルを使用したデータの予測
ネットワークの学習と検証が完了すると、ネットワーク オブジェクトを使用して、任意の入力に対するネットワークの応答を計算できます。たとえば、湿度値のベクトルに対して温度の値を予測することができます。
outputs = net(inputs);
誤差のヒストグラムのプロット
誤差の値を、ターゲット値と予測値の差として計算します。
error = targets - outputs;
number_of_bins = 10;
ploterrhist(error,'bins',number_of_bins);
このプロットは、ビン 10 個の誤差ヒストグラムを示しています。
参考
関数
train
(Deep Learning Toolbox) |feedforwardnet
(Deep Learning Toolbox) |ploterrhist
(Deep Learning Toolbox) |thingSpeakRead