返回顶部
首页 > 资讯 > 后端开发 > Python >用Python计算点估计预测评价指标(误差指标RMSE、MSE、MAE、MAPE) ,画图展示
  • 616
分享到

用Python计算点估计预测评价指标(误差指标RMSE、MSE、MAE、MAPE) ,画图展示

pythonpandas误差指标拟合优度 2023-09-11 09:09:42 616人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

机器学习的回归问题常用RMSE,MSE, MAE,MAPE等评价指标,还有拟合优度R2。由于每次预测出来的预测值再去和原始数据进行误差评价指标的计算很麻烦,所以这里就直接给出他们五个指标的计算函数。把每次预测出来的值和真实值输入这个函数就可

机器学习的回归问题常用RMSE,MSE, MAE,MAPE等评价指标,还有拟合优度R2。由于每次预测出来的预测值再去和原始数据进行误差评价指标的计算很麻烦,所以这里就直接给出他们五个指标的计算函数。把每次预测出来的值和真实值输入这个函数就可以得到上面这些指标,很方便。然后计算出来放一起还可以画柱状图

先放计算公式:

mse就是rmse的平方,公式是差不多的。


 Python计算代码:

import numpy as npimport pandas as pdfrom sklearn.metrics import mean_absolute_errorfrom sklearn.metrics import mean_squared_error,r2_scoredef evaluation(y_test, y_predict):    mae = mean_absolute_error(y_test, y_predict)    mse = mean_squared_error(y_test, y_predict)    rmse = np.sqrt(mean_squared_error(y_test, y_predict))    mape=(abs(y_predict -y_test)/ y_test).mean()    r_2=r2_score(y_test, y_predict)    return mae, rmse, mape,r_2  #mse

 这个函数就两个参数,一个测试集的真实值,一个预测的预测值,放入就可以计算上面的各种指标了。函数的返回值就是他们的mae,rmse,mape,R2的值。


画图展示

df_allmodel用来装不同模型的预测结果,然后计算四个误差指标。

我这里采用了四个不同的神经网络模型对比,DBN,RNN,CNN,MLP四个模型,df_allmodel每一列就是不同模型的预测结果,行就是不同的样本。

新建df_eval评价数据框,然后循环每一个模型的预测结果,用上面定义的函数计算评价指标,储存到df_eval里面。

df_eval=pd.DataFrame(columns=['MAE','RMSE','MAPE','R2'])for i,col in enumerate(df_allmodel.columns):    score=list(evaluation(y_test,np.array(df_allmodel[col])))    df_eval.loc[col,:]=scoredf_eval

 然后对df_eval进行画图:

import numpy as npimport pandas as pdimport matplotlib.pyplot as pltplt.rcParams ['font.sans-serif'] ='SimHei'               #显示中文plt.rcParams ['axes.unicode_minus']=False               #显示负号bar_width = 0.4fig, ax = plt.subplots(2,2,figsize=(8,5))for i,col in enumerate(df_eval.columns):    n=int(str('22')+str(i+1))    plt.subplot(n)    df_col=df_eval[col]    m =np.arange(len(df_col))        #hatch=['-','/','+','x'],    plt.bar(x=m,height=df_col.to_numpy(),width=bar_width,color=colors2)        #plt.xlabel('Methods',fontsize=12)    names=df_col.index    plt.xticks(range(0, 4),names,fontsize=14)        if col=='R2':        plt.ylabel(r'$R^{2}$',fontsize=14)    else:        plt.ylabel(col,fontsize=14)plt.tight_layout()plt.savefig('柱状图.jpg',dpi=512)plt.show()

这里画的是2*2的多子图,每一个小子图就是一个误差指标,x轴就是不同模型,y轴就是误差指标的数值大小。

就画出来了四个模型在四个误差指标上对比,还是很直观方便。


PS:有关于区间估计的评价指标的计算 ,可以看我上篇文章:

(Pandas数据分析33——数据多条件筛选(点估计和区间估计评价指标)_

来源地址:https://blog.csdn.net/weixin_46277779/article/details/127926269

--结束END--

本文标题: 用Python计算点估计预测评价指标(误差指标RMSE、MSE、MAE、MAPE) ,画图展示

本文链接: https://lsjlt.com/news/402918.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作