之前已经创建好线性回归器,并且用模型对测试数据进行了预测,接下来最重要的就是如何评价回归器的模拟效果。在模型评价的相关内容中,用误差表示实际值与模型预测值之间的差值。
常见的衡量回归器拟合效果的指标如下:
平均绝对误差:这是给定数据集的所有数据点的绝对误差平均。
均方误差:这是给定数据集的所有数据点的误差的平方的平均值。这是最流行的指标之一。
中位数绝对误差:这是给定数据集的所有数据点的误差的中位数。这个指标的主要优点是可以消除异常值的干扰。测试数据集中的单个坏点不会影响整个误差指标,均值误差指标会受到异常点的影响。
解释方差分:这个分数用于衡量我们的模型对数据集波动的解释能力。如果得分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)
相关阅读:
本文暂时没有评论,来添加一个吧(●'◡'●)