Python–线性回归评价指标实现

一、项目背景

(可不看)
最近在做非线性数据的数据预测,一头雾水,一年不学习,脑袋有问题。还记得上次做的数据是关于一个政务系统的热点问题分类模块,用了机器学习和深度学习啥的,满脸蒙,反正后面就是做完了(好多吐槽)。

现在做的是关于供应链模块的需求预测,简单说目前的运作流程是:客户需求–>营业人员经验修正–>客户需求生成。

面临问题:客户的需求不能保证准确性,营业人员出于保证出货而减少风险的考虑,修正的客户需求跟未来实际需求不一致,甚至多出十几倍。

修正办法

1.参考单因素的房价预测
训练数据:历史客户需求和实际出货

2.参考时间序列分析的股价预测
训练数据:历史实际出货

这两部分的具体操作在这就不详细说明了,以后再更新(咕咕)

二、评价指标

今天,我们学习线性回归算法的评价指标——MAE(平均绝对误差)、MSE(均方误差)、RMSE(均方根误差)、R Square、MAPE(平均绝对百分比误差)。数据公式编者这里就不再提供了,简单介绍下每个的大概意思和Python用法估计就够了:(懒癌晚期)

  1. MAE(平均绝对误差): 绝对误差的平均值,能反映预测值误差的实际情况。取值越小,模型准确度度越高。
from sklearn.metrics import mean_absolute_error
 mean_absolute_error(y_test,y_pred)
  1. MAPE(平均绝对百分比误差): 是 MAE 的变形,它是一个百分比值。取值越小,模型准确度越高。
MAPE = np.mean(np.abs((y_test - y_pred)/y_test))`
  1. MSE(均方误差): 预测值与实际值之差平方的期望值。取值越小,模型准确度越高。
from sklearn.metrics import mean_squared_error
 mean_squared_error(y_test,y_pred)
  1. RMSE(均方根误差): 又叫标准误差,是均方误差的算术平方根,该结果与实际数据的数量级一样。取值越小,模型准确度越高。
from sklearn.metrics import mean_squared_error
 from math import sqrt
 sqrt(mean_squared_error(y_test,y_pred))
  1. R Square(R方): 将预测值跟只使用均值的情况下相比。取值范围一般【0,1】,结果越靠近 1 模型准确度度越高,结果越靠近 0 直接瞎猜准确度更高,结果为 负数 直接平均值乘以2倍准确度更高。
from sklearn.metrics import r2_score
 r2_score(y_test,y_pred)