matlab计算平均绝对误差和百分比误差、平均相对误差和R2分数决定系数
时间: 2024-09-22 18:07:36 浏览: 84
在MATLAB中,计算平均绝对误差(MAE)、百分比误差(PE)、平均相对误差(MRE)以及R²分数(决定系数)通常用于评估预测模型的性能。以下是各自指标的计算方法:
1. **平均绝对误差 (MAE)**: 衡量实际值和预测值之间的平均绝对偏差。如果 `y_true` 是真实值,`y_pred` 是预测值,那么 MAE 可以通过下面的函数计算:
```
mae = mean(abs(y_true - y_pred));
```
2. **百分比误差 (PE)**: 它显示的是预测误差相对于真实值的百分比。先计算MAE,然后除以真实值并乘以100得到百分比形式:
```
pe = 100 * mean(abs((y_true - y_pred)./y_true));
```
注意这里假设真实值不为零。
3. **平均相对误差 (MRE)**: 类似于百分比误差,但去除真实值为零的情况,只考虑非零值:
```
mre = mean(abs((y_true - y_pred)./max([y_true, eps])));
```
`eps` 是 MATLAB 中的一个很小的数,避免除以零。
4. **R²分数 (决定系数)**: 或称为 R-squared,衡量模型解释数据变异程度的比例。对于拟合线性回归模型,可以使用 `rsquare` 函数:
```matlab
% 对于线性回归模型
mdl = fitlm(data(:, 1:end-1), data(:, end)); % 假设最后一列是目标变量
r_squared = mdl.Rsquared.Ordinary;
```
如果不是线性回归,需要先进行适当拟合。
阅读全文