Converting an equation into MATLAB code

I am trying to write a code that calculates the accuracy of my network using sMAPE. The equation is depicted here:
(Y is actual value, F is forecast value, n is the amount of data)
I have written this code (I have 25 data):
e= gsubtract(output,y);
y= net(input);
accuracy = (0.08*mean(abs(e./(abs((output)+(y))))))
"output" on the code above is the target, "y" is the output (sorry for the misleading name with the actual output) Assuming I use the equation above as a reference, is this code correct?

2 Comments

We do not know. How does e relate to Y or F? How does output relate to Y or F ?
Sorry about that. I edited the question, hope it clears any ambiguity.

Sign in to comment.

 Accepted Answer

sMAPE = sum(abs(Y - F) ./ abs(Y + F)) * (2/length(Y))

2 Comments

NeverPerfecT
NeverPerfecT on 23 Apr 2018
Edited: NeverPerfecT on 23 Apr 2018
With this formula I get values that exceeds 1, is this acceptable or is there some parts I did wrong in the training process? Since based on my knowledge, sMAPE is percentage value, if the value exceeds 1, wouldn't the sMAPE exceeds 100%?
The forecast value could be negative. That would make (Y-F) increase beyond Y, and Y+F would be less than Y. That would give you a contribution greater than 1 at that point.

Sign in to comment.

More Answers (2)

Gujju
Gujju on 27 Jun 2023
Can someone please create the Matlab code for Equation (6) & (8). Those are curves but I'm getting diefferent results.

1 Comment

This isn't related to the original question in this discussion, so you should ask it as a separate question using the Ask link near the top of the page. When you ask that separate question, please show us the code you've written to try to solve the problem and ask a specific question about where you're having difficulty and we may be able to provide some guidance.

Sign in to comment.

Categories

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!