1

私は時系列予測のさまざまなメトリックのさまざまな長所と短所を説明しているthis論文を読んでいました。Tensorflow:コスト関数を改善するためのメトリクスの組み合わせ

は、私は(絶対パーセント誤差平均)MAPEを組み合わせたい:SMSEと

enter image description here

(署名付き平均二乗誤差):

enter image description here

e_tはとの間の差であります実際の値と予測誤差。だから私はTensorflowでこれを実装する方法を知りたがっていました。

式は次のようになります。

error = y - prediction 
cost = tf.reduce_mean(tf.divide(error, y) * 100) 
     + tf.reduce_mean(tf.divide(error, tf.abs(error)) * tf.square(error) 

I:私たちIMMAGINEは、私はすでに、その後、ニューラルネットワークの残りの部分を記述した場合

enter image description here

私は

をお試しください私がtf.multiplyの代わりに*をどのように使用したかについてはかなり不確かです。私は彼らがさまざまな操作を実行することを知っていますが、私はここでどのものを使うべきかわかりません。

ytf.placeholder(tf.float32, [None, #future_predictions])であり、preditionがニューラルネットワークの出力であり、yと同じ形状である必要があるとします。ここでNonebatch_sizeです。

答えて

3

あなたの実装には正しい方向を指しているいくつかの欠陥があると思います。

最初の部分で絶対値を忘れました。そして、二乗和に二乗誤差を含めなかったのです。 ここに修正版があります。 *tf.multiplyを使用して

error = y - prediction 
cost = tf.reduce_mean(tf.abs(tf.divide(error, y)) * 100) 
     + tf.reduce_mean(tf.divide(error, tf.abs(error) * tf.square(error)) 

は同じです。それらはテンソル間の要素的な乗算を行います。 (行列の乗算には、tf.matmulを使うべきです)

関連する問題