赞
踩
讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。
MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili
学完了矩阵的算术运算后,我们来做一些练习。
假设真实值是向量 ,拟合值或预测值是向量
- % 例如我们举一个n为10的例子
- y = [100 102 108 117 135 178 198 241 290 349];
- y_hat = [93 108 118 117 141 170 196 249 296 359];
- n = length(y); % 10
范围[0,+∞),当预测值与真实值完全吻合时等于0。误差越大,该值越大。
它的量纲是原来数据量纲的平方。
SSE = sum( (y-y_hat).^2 ) % 489
就是SSE除了一个n
范围[0,+∞),当预测值与真实值完全吻合时等于0。误差越大,该值越大。
它的量纲是原来数据量纲的平方。
MSE = 1/n*(sum( (y-y_hat).^2 )) % 48.9
就是MSE加了个根号
范围[0,+∞),当预测值与真实值完全吻合时等于0。误差越大,该值越大。
它的量纲和原来数据的量纲相同。
RMSE = sqrt( 1/n*(sum((y-y_hat).^2)) ) % 6.9929
范围[0,+∞),当预测值与真实值完全吻合时等于0。误差越大,该值越大。
它的量纲和原来数据的量纲相同。
MAE = 1/n*( sum( abs(y-y_hat) ) ) % 6.3
范围[0,+∞),当预测值与真实值完全吻合时等于0。
可以看到,MAPE跟MAE很像,就是多了个分母。
注意:当真实值有数据等于0时,存在分母为0的问题,该公式不可用!
- fz = y-y_hat; % 分子
- MAPE = 1/n*(sum(abs(fz ./ y))) % 0.0403
它的范围是0%到200%,当预测值与真实值完全吻合时等于0。
注:有些地方定义的SMAPE的分母没有加绝对值,这时候SMAPE可能为负数。
- fz = abs(y-y_hat); % 分子
-
- fm = (abs(y)+abs(y_hat))/2; % 分母
-
- SMAPE = 1/n*(sum(fz./ fm )) % 0.0399
- fz = sum((y - y_hat).^2); % 分子
-
- fm = sum((y - mean(y)).^2); % 分母
-
- R2 = 1 - fz/fm % 0.9928
:决定系数、可决系数、R方、拟合优度(Coefficient of determination)
注意:如果使用的是线性回归模型,那么下面两种计算R方的公式都可以使用,且此时R方的范围是[0,1]
式中是y的均值
如果使用的是非线性回归模型,那么R方使用的是第一种定义方法!
且此时R方的范围是(-∞,1].
(线性回归中,两种方法算出来的R方一定相等。非线性回归中只能使用第一种方法计算,第二种算出来的结果是错的!)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。