python计算复数拟合的MAE、MSE、RMSE和R2Score分数

首先先上概念:

(yi为测量值,yi_hat为拟合值)

平均绝对误差(MAE)Mean Absolute Error,是绝对误差的平均值:

MAE = \frac{1}{n}\sum_{i=1}^{n}\left | \hat{y}_{i} - y_{i} \right |

均方误差MSE(mean-square error) 该统计参数是预测数据和原始数据对应点误差的平方和的均值:

MSE = \frac{1}{n}\sum_{i=1}^{n}( \hat{y}_{i} - y_{i})^{2}

均方根误差RMSE(root mean square error)是均方误差的根号:

MSE =\sqrt{\frac{1}{n}\sum_{i=1}^{n}( \hat{y}_{i} - y_{i})^{2}}

决定系数R2(coefficient of determination),也称判定系数或者拟合优度:

决定系数R2

实数拟合中的计算代码如下:

其中Z为测量值,Z_fit为拟合值

原生实现:(代码1)

# 原生实现 衡量线性回归的MSE 、 RMSE、 MAE、r2
import numpy as np
from math import sqrt
mse = np.sum((Z - Z_fit) ** 2) / len(Z)
rmse = sqrt(mse)
mae = np.sum(np.absolute(Z - Z_fit)) / len(Z)
r2 = 1-mse/ np.var(Z)    # 均方误差/方差
print(" mae:",mae,"mse:",mse," rmse:",rmse," r2:",r2)

python的sklearn库内置函数实现:(代码2)

其中y_test为测量值, y_predict为拟合值

# 使用sklearn调用衡量线性回归的MSE 、 RMSE、 MAE、r2
import numpy as np
from sklearn.metrics import mean_absolute_error
from sklearn.metrics import mean_squared_error
from sklearn.metrics import r2_score
print("mean_absolute_error:", mean_absolute_error(y_test, y_predict))
print("mean_squared_error:", mean_squared_error(y_test, y_predict))
print("rmse:", np.sqrt(mean_squared_error(y_test, y_predict)))
print("r2 score:", r2_score(y_test, y_predict))

复数拟合:电化学阻抗谱等效电路等需要复数拟合曲线评价R2分数和RMSE,即Z和Z_fit为复数时(格式为:a+bj)需要将距离改成模值,将差的平方改成模的平方,将求方差改成先求模值再求模值的方差,具体代码如下:(改编代码1,代码2的库函数不能应用于复数域)

"""
# 实数拟合的MSE 、 RMSE、 MAE、r2
mse = np.sum((Z - Z_fit) ** 2) / len(Z)
rmse = sqrt(mse)
mae = np.sum(np.absolute(Z - Z_fit)) / len(Z)
r2 = 1-mse/ np.var(Z) 
"""
# 复数拟合的MSE 、 RMSE、 MAE、r2
mse = np.sum(abs(Z - Z_fit) ** 2) / len(Z)
rmse = sqrt(mse)
mae = np.sum(abs(Z - Z_fit)) / len(Z)
r2 = 1-mse/ np.var(abs(Z))#均方误差/方差
print(" mae:",mae,"mse:",mse," rmse:",rmse," r2:",r2)

希望对你有帮助~嘻嘻

参考文章:Python计算统计分析MSE 、 RMSE、 MAE、r2

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值