matlab计算平均相对误差和R2分数决定系数
时间: 2024-09-22 21:07:42 浏览: 109
在MATLAB中,计算平均相对误差(Mean Absolute Percentage Error, MAPE)和决定系数(Coefficient of Determination, R²)通常用于评估模型预测性能。这里简单介绍如何计算这两个指标:
**1. 平均相对误差(MAPE)**
对于一组真实值`y_true`和预测值`y_pred`,MAPE是每个观测值绝对误差除以真实值的百分比平均值:
```matlab
function mape = calculate_MAPE(y_true, y_pred)
error = abs((y_true - y_pred) ./ y_true); % 计算绝对误差
mape = mean(error); % 计算平均值并返回结果
end
```
要使用这个函数,你需要提供真实的`y_true`和预测的`y_pred`值:
```matlab
y_true = ...; % 真实值数组
y_pred = ...; % 预测值数组
mape = calculate_MAPE(y_true, y_pred);
```
**2. 决定系数(R²)**
R²衡量了模型解释变量变化的比例,值越接近1表示拟合越好,值越接近0说明模型效果越差。在回归分析中,通常使用下面的公式计算:
```matlab
function r_squared = calculate_R_squared(y_true, y_pred)
ssresidual = sum((y_true - y_pred).^2); % 残差平方和
sstotal = sum((y_true - mean(y_true)).^2); % 总偏差平方和
r_squared = 1 - (ssresidual / sstotal);
end
```
同样,传入实际值和预测值即可:
```matlab
r_squared = calculate_R_squared(y_true, y_pred);
```
阅读全文