之前已经建立了线性回归,并且已经用模型预测了测试数据。接下来最重要的是如何评价回归的模拟效果。在模型评估的相关内容中,误差用于表示模型的实际值和预测值之间的差异。
衡量回归拟合效果的常用指标如下:
平均绝对误差:这是给定数据集所有数据点的平均绝对误差。
均方误差:这是给定数据集的所有数据点的误差平方的平均值。这是最受欢迎的指标之一。
中值绝对误差:这是给定数据集中所有数据点的中值误差。该指标的主要优点是可以消除异常值的干扰。测试数据集中的单个坏点不会影响整个误差指标,但平均误差指标会受到异常点的影响。
解释方差得分:该得分用于衡量我们的模型对数据集波动的解释力。如果分数是1.0,那么我们的模型就是完美的。
R-square得分:该指标读作“R-square”,是指确定性相关系数,用于衡量模型对未知样本的预测效果。最好的分数是1.0,数值也可以是负数。
scikit-learn中有一个模块提供了计算所有指标的功能,然后编写代码《创建线性回归器》:
#计算回归精度
将sklearn.metrics导入为sm
#计算平均绝对误差
打印('平均绝对误差=',圆形(平均绝对误差(y_test,y_test_pred),2))
#计算均方误差
打印('均方误差=',四舍五入(均方误差(y_test,y_test_pred),2))
#计算绝对误差中值。
打印('中值绝对误差=',圆形(sm .中值绝对误差(y_test,y_test_pred),2))
#计算解释差异分数
打印('解释方差误差=',四舍五入(解释方差分数(y_test,y_test_pred),2))
#计算R分数
print ('R2分数误差=',round(sm.r2_score(y_test,y_test_pred),2))
输出如下:
(“平均绝对误差=”,0.54)
(“均方误差=”,0.38)
(“中间绝对误差=”,0.54)
(“解释方差误差=”,0.68)
(' R2评分误差=',0.68)
用每一个指标来描述每一件事是非常枯燥的,所以我们只选择一两个指标来评价我们的模型。通常的做法是确保均方误差最低,解释方差得分最高。
模型训练完成后,需要将模型保存为文件,下次使用时只需加载即可。代码如下:
#保存模型
进口泡菜
output _ model _ file=' saved _ model . pkl '
打开(output_model_file,' w ')为f:
pickle.dump(线性回归器,f)
回归模型保存在saved_model.pkl文件中。让我们看看如何加载和使用它。代码如下:
#负载使用模型
打开(output_model_file,' r ')为f:
model_linregr=pickle.load(f)
y _ test _ pred _ new=model _ linregr . predict(x _ test)
打印('新平均绝对误差=',圆形(sm.mean_absolute_error(y_test,y_test_pred_new),2))
输出如下:
(“新平均绝对误差=”,0.54)
相关阅读:
《用R语言做数据分析——一元线性回归》
《每天一点数据分析——回归分析》
《用R语言做数据分析——线性模型函数简介》