RMSE between original and predicted values.

Hi,
If I have thousand samples of my signal in a vector form like 1*1000, and I will predict my signal at each iteration that results into 1*1000 also. Then In this case, how will I find the RMSE of my model?
Many Thanks

 采纳的回答

Please see my Comment replying to your Comment.

8 个评论

Thank you very much Sir again for your kind help.
As always, my pleasure!
@ Star Strider, writing below code in for loop for RMSE. Is it correct way? waiting for your reply. Thanks
close all; clear all; clc;
v1 = [0.3 0.6 0.9];
v2 = [0.8 0.9 0.7];
for k = 1:length(v1)
y = v1-v2;
y1 = y.^2;
sumy1 = sum(y1);
end
RMSE = sqrt(sumy1/numel(v1));
It is correct, however you can write it much more simply:
v1 = [0.3 0.6 0.9];
v2 = [0.8 0.9 0.7];
RMSE = sqrt(mean((v1-v2).^2))
producing:
RMSE =
0.355902608401044
Remembering that ‘RMSE’ means the ‘root of the mean of the squares’.
Thanks. But actually, I am accumulating the error inside the loop, so after that, I can take the mean and square root outside the loop to get RMSE of my model.
The RMSE calculation remains the same. You need to take the diferences, square them, accumulate them, take the mean, and the the square root of that.
As always, my pleasure!

请先登录,再进行评论。

更多回答(1 个)

Without any other information, the maximum likelihood prediction for every element would be the mean of the entire signal. But it seems you'd rather have the rms, so you'd have
RMSE = rms(yourVector)
predictionVector = RMSE * ones(length(yourVector));

类别

帮助中心File Exchange 中查找有关 MATLAB 的更多信息

产品

标签

Community Treasure Hunt

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

Start Hunting!

Translated by