模型评估主要分为离线评估和在线评估。针对分类、排序、回归、序列预测等不同类型的机器学习问题,模型评估指标的选择也有所不同。要评估模型的效果,就需要将模型预测结果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:
真正率(TPR)=TP/(TP+FN)
假正率(FPR)=FP/(FP+TN)
AUC是ROC曲线下的面积,取值越大说明模型越可能将正样本排在负样本前面,AUC对预测概率不敏感。
对数损失(Logistics 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)