What kind of RMSE should I choose to show the capability of function approximation with Neural Networks ؟

4 次查看(过去 30 天)
Hello every one
This Data set shown below is one of My Data set for function approximation with Neural Network in MATLAB. The left column is the Target vector and the right column is the model output vector.
-0.29039678 -0.212428117
0.149798734 0.268486256
0.851351352 0.563358782
-0.694364578 -0.652148947
-0.326624496 -0.468058466
-0.019838988 0.209298441
-0.765669926 -0.828415796
-0.133410006 0.003000269
-0.122484186 -0.073538329
-0.471535366 -0.376903371
0.181426106 0.365548334
0.186889016 0.37947765
-0.260782058 -0.024155069
-0.215353652 -0.371639751
-0.062967222 0.092607096
-0.461759632 -0.56834877
0.074468086 0.154155435
0.624496838 0.529777368
-0.197814836 -0.096543508
-0.247268546 -0.136442585
0.106382978 0.28668492
-0.791259344 -0.718599416
-0.532489936 -0.572352826
-0.006325474 -0.010056861
0.48706153 0.485766679
-0.631397354 -0.619362709
-0.815698678 -0.823629139
0.272857964 0.354840024
0.080506038 0.220713202
and I want to show the capability of my model by calculating the RMSE value between the Target & Output vectors in MATLAB .
my question is that what kind of RMSE should I use ?
The RMSE obtained by fitlm function
lm=fitlm(x,y,'linear');
or RMSE obtained by the formula shown below?
RMSE = sqrt(sum((data(:) - estimate (:)).^2) / numel(data));
and if I use the RMSE obtained by fitlm function, Is the RMSE value true ??
because the vector created by
lm.predict(x)
and my Output vector are different.
with best regards.
  2 个评论
John D'Errico
John D'Errico 2016-5-30
编辑:John D'Errico 2016-5-30
It really does not matter that much. With many points in your model, and only 2 parameters to estimate, the difference is a few percent. There is no perfect estimate of the noise anyway.
So while that which fitlm returns will be a perhaps better (unbiased) estimator, it is also not that important.
mr mo
mr mo 2016-5-30
编辑:mr mo 2016-5-30
so the RMSE obtained by fitlm function is reliable ? because in some cases that I've tried, the difference between values of RMSE obtained by 2 ways above, reach 0.03

请先登录,再进行评论。

采纳的回答

Greg Heath
Greg Heath 2016-5-31
Neither:
1. The default performance function of the regression NNs NEWFIT (calls the generic NEWFF; both are obsolete but still available) and FITNET (current: calls the generic FEEDFORWARDNET) is mean-square-error, MSE, which is scale dependent.
2. However, it is better to use the SCALE INDEPENDENT NORMALIZED MSE, NMSE. MSE is normalized by the MSE of the simplest NN model: the one whose output is just a constant, INDEPENDENT OF THE INPUT! In order to minimize that MSE, the constant must be the average target variance.
In recent threads I have used the notation vart1. In earlier threads I have used the notation MSE00:
NMSE = MSE/MSE00 = MSE/vart1
where
MSE00 = vart1 = mean(var(target',1))
3. This is not a frivolous choice: NMSE is the fraction of the average target variance that is NOT modelled by the net. Conversely, the "Coefficient of Variation" also known as "R-squared" defined by
Rsq = 1- NMSE
is the fraction of the average target variance that IS modelled by the net!
Lookup RSQUARE in both GOOGLE and WIKIPEDIA, e.g.,
https://en.wikipedia.org/wiki/Coefficient_of_determination
My typical choice of the regression design goal is
MSEgoal = 0.01*vart1
which yields Rsq = 0.99 (Rsq = 1 is a perfect fit!).
There are hundreds of my examples in both the NEWSGROUP and ANSWERS.
Hope this helps.
Thank you for formally accepting my answer
Greg

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by