当我们训练好一个机器学习模型之后,必然会对模型的综合性能进行评估,针对分类、回归、聚类等不同类型的算法模型,可以采用相关的评价指标,例如分类模型的Accuracy、KS等;回归模型的MAE、MSE等;聚类模型的SSE、HE等。对于以上不同维度的模型评估指标,虽然与模型的具体类型直接相关,而且从概念理解与数据分析上有较大区别,但模型综合性能的好坏程度与优劣对比,本质上还是模型的误差表现。因此,模型误差的指标是我们最需要明确的重点,这也是为什么在模型训练阶段需要重点关注模型训练误差的核心思想,毕竟误差是模型学习能力与泛化能力的直接体现。
模型误差指标是目标变量真实值与预测值的客观结果,对于回归模型是最能体现误差性能的算法模型。针对机器学习算法的回归场景,最熟悉的莫过于线性回归模型,而评价其综合效果的指标常见的有R2、MAE、MSE、MAPE等。其实,若需更全面量化并评估模型的误差程度,可以扩展到更多细化维度。本文围绕以上实际场景,给各位小伙伴全面梳理介绍下模型误差指标的多元化实现过程,共包含20个维度的误差指标,除了相对较为熟悉的MAE(平均绝对误差)、MSE(均方误差)等之外,还包括MADE(中位数绝对误差)、NAE(标准化绝对误差)、RAE(相对绝对值误差)、SMAPE(对称平均绝对百分比误差)等。
为了便于大家对模型多维误差指标的深入理解与全面掌握,我们将结合具体的实例样本数据,来拟合训练一个线性回归模型,然后通过Python代码来依次实现各个误差指标的加工过程,最后汇总各模型指标的分析结果,来综合评价模型的拟合训练效果与综合学习能力。
1、样本数据介绍
本文选取的测试数据包含5000条样本和8个字段,具体样例如图1所示。其中。ID为样本主键;X1~X6为特征变量,取值类型均为数值型;Y为目标变量,分布类型为连续型,满足回归模型的标签条件,我们将采用传统机器学习算法线性回归LinR来建立回归模型。
图1 样本数据样例
建模样本数据的简单描述性统计分析如图2所示,详细展示了特征变量的count(非缺失值数量)、mean(平均值)、max(最大值)、min(最小值)、std(标准差)、50%(中位数)等常见统计指标。通过指标count结果可知,特征X1~X6均存在不同程度的缺失情况,例如字段X1的缺失率为(5000-4449)/5000=11.02%,X2的缺失率为(5000-4990)/5000=0.2%。
图2 特征分布描述
由于线性回归算法在模型训练过程中不能直接处理缺失值,因此在数据预处理环节需要对特征变量的缺失值进行处理,由于各字段的类分布型均为连续型,可以采用常规的平均值方法来进行填充,具体实现过程如图3所示。为了验证特征的缺失值得到有效处理,可以通过isnull().sum()函数来查看各字段的缺失情况。
图3 特征缺失值处理
2、回归模型建立
当建模样本完成数据预处理后,我们首先来训练一个完整的线性回归模型,算法参数均采用默认值,然后采用模型predict()来输出样本的预测结果pred_Y,最后通过样本的真实标签data_Y与预测标签pred_Y,导出我们日常建立回归模型时接触最多的几个评价指标,例如MAE、MAPE、MSE、RMSE等。以上模型训练、模型评估的具体实现过程分别如图4、图5所示,
图4 模型拟合训练
图5 模型预测评估
通过上图模型评估输出的模型性能指标结果可知,MAE=0.1150、MAPE=0.2684、MSE=0.0256、RMSE=0.1599,当前模型的整体效果表现尚可。
3、模型误差指标
上文的数据预处理、模型训练、模型预测等流程,主要目的是为了接下来全面分析模型误差指标做准备的。我们先将模型的20大误差评价指标进行一个全貌展示,具体如图6所示。
图6 模型误差指标概览
对于以上模型的各误差指标,取值越接近于0说明模型的准确效果越好。虽然针对图6的少数几个指标(MAE、MSE等)是我们日常建模习惯采用的,但对于模型性能的综合评估,本质上是可以扩展更多评价思路与实现方法,显然这对模型开发及其应用是非常有意义的,接下来我们围绕图6的指标列表,通过Python代码来依次实现。由于指标较多代码零碎,我们将各指标的实现过程统一展现,具体如图7~图11。
图7 模型误差指标实现1
图8 模型误差指标实现2
图9 模型误差指标实现3
图10 模型误差指标实现4
图11 模型误差指标实现5
在以上20大误差指标体系中,其中SE(Simple Error,样本误差)、SPE(Simple Percentage Error,样本误差百分比)这2个维度为样本个体指标,也就是当前测试数据有多少样本,对应输出相同数量的误差数值,体现的是单个样本数据的误差情况。对于其他18个维度的误差指标,均为模型总体评价指标,输出结果是单一数值,直接体现模型的整体性能。针对以上18个综合型误差指标,我们可以采用excel小工具,通过可视化形式对模型各误差指标进行展现,这里选取部分指标(MAE、MAPE、MSE、RMSE、NRMSE、MDAE、MDAPE、SMAPE、SMDAPE、MAAPE)作为样例,其分布结果如图12所示。
图12 模型误差指标可视化
对于模型的综合性能评估,在实践中很难保证所有误差指标均表现很好,毕竟每个指标量化的信息维度相互有所区别,当然理想结果是各个误差指标的结果取值较低,但实际情况往往是当多数误差指标表现较低,便可说明模型的整体效果表现尚可,尤其是MAE、MAPE、MSE、RMSE等几个常用指标。当然,降低模型的训练误差,是我们希望得到的最终结果,但这个过程属于模型调优的相关内容,具体可以通过参数优化、特征工程等重要环节来完成。
综合以上内容,我们围绕线性回归模型,通过具体数据实例完成了模型的构建过程,并重点介绍了模型20大误差指标的实现过程与分布效果,这对于全面评价模型的综合性能是非常有意义的。为了便于大家对模型多维度误差指标的进一步理解与熟悉,本文额外附带了与以上内容同步的Python代码与样本数据,供大家参考学习,详情请移至知识星球查看相关内容。
…
~原创文章
如果觉得《风控模型别只会KS AUC了 来看看其他衡量模型好坏的一些重要指标吧|含实操》对你有帮助,请点赞、收藏,并留下你的观点哦!