均方误差 matlab 代码
时间: 2023-11-04 13:07:21 浏览: 94
matlab均方误差代码
均方误差(Mean Squared Error,MSE)是评估预测值与真实值之间差异的一种常用方法。在MATLAB中,可以使用以下代码计算均方误差:
```matlab
function mse = calcMSE(R, U, V)
% R: 用户电影评分矩阵
% U: 用户偏好矩阵
% V: 特征电影矩阵
% mse: 均方误差
[m, n] = size(R);
mse = 0;
for i = 1:m
for j = 1:n
if R(i, j) > 0
mse = mse + (R(i, j) - U(i, :) * V(:, j))^2;
end
end
end
mse = mse / nnz(R);
end
```
其中,`R`是用户电影评分矩阵,`U`是用户偏好矩阵,`V`是特征电影矩阵,`nnz`函数用于计算矩阵中非零元素的个数。该函数会遍历矩阵中所有非零元素,计算预测值与真实值之间的差异,并将差异的平方累加到`mse`变量中。最后,将`mse`除以非零元素的个数,得到均方误差。
阅读全文