在机器学习领域,对模型的评估非常的重要,只有选择与问题相匹配的评估方法,才能更好的模型训练和模型选择的时候出现的问题,才能更好的对模型进行迭代优化。
模型评估主要分为离线评估和在线评估。针对分类、排序、回归、序列预测等不同类型的机器学习问题,模型评估指标的选择也有所不同。知道每种评估指标的精确定义、有针对性的选择合适的评估指标、根据评估指标的反馈进行模型的调整,这些都是机器学习在模型评估阶段的关键问题,也是一名合格的算法工程师应该具备的基本功。
模型评估指标反映模型效果。在预测问题中,要评估模型的效果,就需要将模型预测结果f(X)和真实标注的Y进行比较,评估指标定义为f(X)和Y的函数:score = metric(f(X),Y)
模型的好坏是相对的,在对比不同的模型效果时,使用不同评估指标往往会导致不同的结论。
通常离线评估使用的是机器学习评估指标,在线评估使用的是业务指标。如果离线指标和在线指标不同,则可能会出现离线指标变好而在线指标变差的现象。所以,在一个新的问题开始的初期,都会进行多轮模型迭代,来探索与线上业务指标一致的线下指标,尽可能是线下指标的变化趋势与线上指标一致。没有一个跟线上一致的线下指标,那么这个线下指标没有参考价值,想判断模型是否有效,只能线上实验,这样就成本太高了。
1 分类问题模型评估指标:
我们先看混淆矩阵
其中,TP表示实际标签为正,预测标签也为正,FP表示实际标签为负,预测标签却为正,TN表示实际标签为负,预测标签也为负,FN表示实际标签为正,预测标签却为负,样本总数=TP+FP+FN+TN
准确率(acc) = (TP+TN)/(TP+FP+FN+TN)
精确率(P)=TP/(TP+FP)
召回率(R)=TP/(TP+FN)
ROC与AUC:
ROC中文名称接收者操作特征(Receiver Operating Characteristic),ROC曲线不需要设定阈值,纵坐标是真正率,横坐标是假正率
真正率(TPR)=TP/(TP+FN)
假正率(FPR)=FP/(FP+TN)
AUC是ROC曲线下的面积,取值越大说明模型越可能将正样本排在负样本前面。
对数损失(Logistics Loss,logloss)是对预测概率的似然估计:logloss = -logP(Y|X),对数损失最小化本质上是利用样本中的已知分布,求解导致这种分布的最佳模型参数,使这种分布出现的概率最大。logloss衡量的是预测概率分布和真实概率分布的差异性,取值越小越好。与AUC不同,logloss对预测概率敏感。
2 回归问题模型评估指标:
平均绝对误差,也叫L1范数损失,公式:MAE = 1/N·Σ|Yi-Pi|,其中,N为样本数,Yi为第i条样本的真实值,Pi为第i条样本的预测值。模型使用MAE作为损失函数是对数据分布的中值进行拟合。但某些模型如XGBoost必须要求损失函数有二阶导数,所以不能直接优化MAE.
均方根误差的公式:RMSE =√( 1/N·Σ|Yi-Pi|2),RMSE代表的是预测值与真实值差值的样本标准差。和MAE对比,RMSE对大误差样本有更大的惩罚,但它对离群点敏感,健壮性不如MAE。模型使用RMSE作为损失函数是对数据分布的平均值进行拟合。
3 排序问题模型评估指标
平均准确率均值(MAP)和 归一化贴现累计收益(NDCG),感兴趣的可以查阅相关资料。
领取专属 10元无门槛券
私享最新 技术干货