回归准确性计算

回归准确性计算

之前已经创建好线性回归器,并且用模型对测试数据进行了预测,接下来最重要的就是如何评价回归器的模拟效果。在模型评价的相关内容中,用误差表示实际值与模型预测值之间的差值。

常见的衡量回归器拟合效果的指标如下:

  • 平均绝对误差:这是给定数据集的所有数据点的绝对误差平均。

  • 均方误差:这是给定数据集的所有数据点的误差的平方的平均值。这是最流行的指标之一。

  • 中位数绝对误差:这是给定数据集的所有数据点的误差的中位数。这个指标的主要优点是可以消除异常值的干扰。测试数据集中的单个坏点不会影响整个误差指标,均值误差指标会受到异常点的影响。

  • 解释方差分:这个分数用于衡量我们的模型对数据集波动的解释能力。如果得分1.0分,那么表明我们的模型是完美的。

  • R方得分:这个指标读作“R方”,是指确定性相关系数,用于衡量模型对未知样本预测的效果。最好的得分是1.0,值也可以是负数。

scikit-learn里面有一个模块,提供了计算所有指标的功能,接着编写《 》的代码:

#计算回归准确性

import sklearn.metrics as sm

#计算平均绝对误差

print ("Mean absolute error=", round(sm.mean_absolute_error(y_test,y_test_pred),2))

#计算均方误差

print ("Mean squared error=", round(sm.mean_squared_error(y_test,y_test_pred),2))

#计算中位数绝对误差

print ("Median absolute error=", round(sm.median_absolute_error(y_test,y_test_pred),2))

#计算解释方差分

print ("Explained variance error=", round(sm.explained_variance_score(y_test,y_test_pred),2))

#计算R方得分

print ("R2 score error=", round(sm.r2_score(y_test,y_test_pred),2))

输出结果如下:

('Mean absolute error=', 0.54)

('Mean squared error=', 0.38)

('Median absolute error=', 0.54)

('Explained variance error=', 0.68)

('R2 score error=', 0.68)

每个指标都描述得面面俱到是非常乏味的,因此只选择一两个指标来评估我们的模型。通常的做法是尽量保证均方误差最低,而且解释方差分最高。

模型训练结束后,需要把模型保存成文件,下次再使用的时候,只要简单地加载就可以了。代码如下:

#保存模型

import cPickle as pickle

output_model_file = 'saved_model.pkl'

with open(output_model_file,'w') as f:

pickle.dump(linear_regressor,f)

回归模型会保存在saved_model.pkl文件中。下面看看如何加载使用它,代码如下所示:

#加载使用模型

with open(output_model_file,'r') as f:

model_linregr = pickle.load(f)

y_test_pred_new = model_linregr.predict(x_test)

print("New mean absolute error = ", round(sm.mean_absolute_error(y_test,y_test_pred_new),2))

输出结果如下:

('New mean absolute error = ', 0.54)

相关阅读:

《 》

《 》

《 》


分享到:


相關文章: