文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-09-11 09:46

关注

机器学习的回归问题常用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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯