我想计算两个不相等数据集的RMSE。
数据集1的尺寸为1067x1,数据集2的尺寸为2227x1。
如何计算RMSE?
由于
答案 0 :(得分:0)
很难回答不知道数据。 一种选择是将一个向量的长度插入另一个向量。如果您有例如两个数据集的时间戳。
v1 = rand(1067,1);
v2 = rand(2227,1);
v1_int = interp1(1:size(v2,1)/size(v1,1):size(v2,1), v1, 1:size(v2,1), 'linear', 'extrap')';
sqrt(mean((v1_int-v2).^2))
答案 1 :(得分:0)
在继续进行RMSE
计算之前,您可以interpolate较小的向量,如下所示:
d1 = randn(1067,1);
d1_len = numel(d1);
d2 = randn(2227,1);
d2_len = numel(d2);
d1 = interp1(1:(d2_len / d1_len):d2_len,d1,1:d2_len,'linear','extrap');
plot(d2,'b');
hold on;
plot(d1,'r')
hold off;
或者,可以使用downsample和upsample函数,但它们需要更多关注最终输出数据和长度。完成此操作后,您可以使用以下代码获取RMSE
:
RMSE = sqrt(mean(((d2 - d1) .^ 2)));
RMSE
实际上定义为误差平方均值的平方根,其中误差由观测值y
与预测值ycap
之间的差异给出...因此,请仔细选择哪一个向量代表前者,哪一个代表后者。有关详细信息,请阅读this。