このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
ニューラルネットワークの誤差のヒストグラムのプロット
この例では、フィードフォワード ニューラル ネットワークをトレーニングした後、ターゲット値と予測値間のエラーを可視化する方法を示します。
気象ステーション ThingSpeak™チャネルからデータを読み取る
ThingSpeak チャネル 12397 には、マサチューセッツ州ネイティックにある MathWorks® 気象計からのデータが含まれています。データは 1 分ごとに収集されます。フィールド 2、3、4、6 には、それぞれ風速 (mph)、相対湿度、温度 (F)、大気圧 (inHg) のデータが含まれます。thingSpeakRead
関数を使用してチャネル12397 からデータを読み取ります。
data = thingSpeakRead(12397,'Fields',[2 3 4 6],'Numpoints',500,'outputFormat','table');
入力変数とターゲット値を割り当てる
入力変数を割り当て、温度と相対湿度から露点を計算してターゲットとして使用します。温度を華氏から摂氏に変換し、水蒸気 (b) と気圧 (c) の定数を指定します。中間値「ガンマ」を計算し、ネットワークにターゲット値を割り当てます。
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';
2層フィードフォワードネットワークの作成とトレーニング
feedforwardnet
関数を使用して、2 層のフィードフォワード ネットワークを作成します。ネットワークには、10 個のニューロンを持つ 1 つの隠し層と 1 つの出力層があります。train
関数を使用して、入力を使用してフィードフォワード ネットワークをトレーニングします。
net = feedforwardnet(10); [net,tr] = train(net,inputs,targets);
トレーニング済みモデルを使用してデータを予測する
ネットワークのトレーニングと検証が完了したら、ネットワーク オブジェクトを使用して、任意の入力 (この場合は 5 番目の入力データ ポイントの露点) に対するネットワーク応答を計算できます。
outputs = net(inputs(:,5))
outputs = 22.8618
誤差のヒストグラムをプロットする
目標値と予測値の差としてエラー値を計算します。
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