回归类算法的模型评估与分类型算法的模型评估其实是相似的法则——找真实标签和预测值的差异。在分类型算法中,评判否预测到了正确的分类,而在我们的回归类算法中,评判是否预测到了正确的数值、以及是否拟合到了足够的信息。
绝对误差 MAE
---- 是否预测了正确的数值
sklearn中使用RSS 的变体,均方误差MSE(mean squared error)来衡量我们的预测值和真实值的差异:
均方误差MSE
在sklearn当中,我们有两种方式调用这个评估指标,一种是使用sklearn专用的模型评估模块metrics里的类mean_squared_error,另一种是调用交叉验证的类cross_val_score并使用里面的scoring参数来设置使用均方误差。
sklearn.metrics.mean_squared_error(y_true, y_pred, *, sample_weight=None, multioutput='uniform_average', squared=True)
sklearn.model_selection.cross_val_score(reg,X,y,cv=10,scoring=="neg_mean_squared_error")squared bool, default=True If True returns MSE value, if False returns RMSE value.
这里注意scoring=="neg_mean_squared_error", 均方误差为负是因为sklearn在计算模型评估指标的时,认为均方误差本身是一种误差,是模型的一种损失(loss)。在sklearn当中,所有的损失都使用负数表示,因此均方误差也被显示为负数了。
均方根误差RMSE
RMSE为MSE的算术平方根
缺点:因使用平均误差,平均误差对异常值比较敏感,异常值的出现,使得RMSE的误差较大。
例:
>>> from sklearn.metrics import mean_squared_error
>>> y_true = [3, -0.5, 2, 7]
>>&g