评估指标
线下使用机器学习评估指标,线上使用的是业务指标。需要进行多轮模型迭代使两个指标变化趋势相同。
分类指标
精确率和召回率
用于二分类问题,结合混淆矩阵。
精确率 P =
T
P
T
P
+
F
P
\frac{TP}{TP+FP}
TP+FPTP
召回率 R =
T
P
T
P
+
F
N
\frac{TP}{TP+FN}
TP+FNTP
精确率:也称作查准率。在被识别为正类别的样本中,确实是正类别的比例。
召回率:也成为查全率。在所有正类别样本中,被正确识别为正类别的比例
以召回率R为横轴,以精确率P为纵轴画P-R曲线,越靠近右上角性能越好。曲线下的面积为AP分数(Average Precision Score) 。
如果一个PR曲线完全包含另一个,则前者性能更优。如果两个曲线发生交叉,则比较平衡点,远离原点的更好。
F值
2 F 1 = 1 P + 1 R \frac{2}{F_1} = \frac{1}{P} + \frac{1}{R} F12=P1+R1
可泛化成为 F α = ( 1 + α 2 ) ∗ P ∗ R α 2 ∗ P + R F_\alpha = \frac{(1+\alpha^2)*P*R}{\alpha^2*P+R} Fα=α2∗P+R(1+α2)∗P∗R
在不同的情况下,对精准率和召回率的偏重是不一样的,如在推荐系统中,为了尽可能少打扰用户,更希望推荐的内容是用户喜欢的,这时,精准率比较重要;而在逃犯检索系统中,更希望尽可能少漏掉逃犯,此时召回率比较重要。
当参数 α \alpha α>1时,召回率有更大影响,可以考虑为, α \alpha α无穷大时,分母中的R和分子中的1都可忽略不计,则F=R,只有召回率起作用。
准确率和错误率
不要将精确率和准确率搞混。准确率是模型预测正确的结果所占的比例。
而且精确率仅仅适用于二分类概念。
ROC
接受者操作特征 Receiver Operating Characteristic (ROC)
解决了使用精确率等指标进行模型评估时,需要对预测概率设分类阈值,增添超参数,的问题。
真正率 TPR = T P T P + F N \frac{TP}{TP+FN} TP+FNTP
假正率 FPR = F P F P + T N \frac{FP}{FP+TN} FP+TNFP
以假正率为x轴,以真正率为y轴,ROC曲线越靠近左上角越好。此时TPR=1,FPR=0。在采用有限测试样例绘制ROC图时,无法画出光滑曲线。过程:给定 m 1 m_1 m1个正例和 m 2 m_2 m2个反例,根据预测结果对样例进行排序,把分类阈值设为最大,即把所有样例均预测成为反例,此时TPR=FPR=0,在(0,0)处标记一个点。然后,将分类阈值依次设为每个样例的预测值,依次将每个样例划分为正例。设前一个标记点坐标为 ( x , y ) (x,y) (x,y),当前若为真正例,则对应标记点坐标为 ( x , y + 1 m 1 ) (x,y+\frac{1}{m_1}) (x,y+m11),否则对应标记点坐标为 ( x + 1 m 2 , y ) (x+\frac{1}{m_2},y) (x+m21,y)。用线段连接相邻点。
相较于PR曲线,ROC曲线在正负样本的分布发生变化时更容易保持稳定。
AUC
Area Under ROC Curve (AUC)是指ROC曲线下的面积。取值越大,说明模型越可能将正样本放在负样本前面。AUC计算主要与排序有关,对预测分数没那么敏感。
l r a n k = 1 m 1 + m 2 ∑ x + ∑ x − I ( f ( x + ) < f ( x − ) + 0.5 I ( f ( x + ) = f ( x − ) ) ) l_{rank} = \frac{1}{m_1+m_2} \sum_{x^+}\sum_{x^-} I(f(x^+)<f(x^-) + 0.5I(f(x^+) = f(x^-))) lrank=m1+m21∑x+∑x−I(f(x+)<f(x−)+0.5I(f(x+)=f(x−)))
A U C = 1 − l r a n k AUC = 1-l_{rank} AUC=1−lrank
在非均等代价下,ROC曲线不能直接反映出学习器的期望总体代价,而代价曲线可以。横轴是取值为[0,1]的正例概率代价,纵轴是取值为[0,1]的归一化代价。
c o s t 01 , c o s t 10 cost_{01}, cost_{10} cost01,cost10 分别代表type one error和type two error。
P ( + ) c o s t = p ∗ c o s t 01 p ∗ c o s t 01 + ( 1 − p ) ∗ c o s t 10 P(+)cost = \frac{p*cost_{01}}{p*cost_{01} + (1-p)*cost_{10}} P(+)cost=p∗cost01+(1−p)∗cost10p∗cost01
c o s t n o r m = F N R ∗ p ∗ c o s t 01 + F P R ∗ ( 1 − p ) ∗ c o s t 10 p ∗ c o s t 01 + ( 1 − p ) ∗ c o s t 10 cost_{norm} = \frac{FNR*p*cost_{01} + FPR*(1-p)*cost_{10}}{p*cost_{01} + (1-p)*cost_{10}} costnorm=p∗cost01+(1−p)∗cost10FNR∗p∗cost01+FPR∗(1−p)∗cost10
对数损失
logistic loss = − l o g P ( Y ∣ X ) -logP(Y|X) −logP(Y∣X) = − 1 N C ∑ i = 0 N ∑ j = 0 C y i j ∗ l o g p i j -\frac{1}{NC}\sum_{i=0}^N\sum_{j=0}^C{y_{ij}*logp_{ij}} −NC1∑i=0N∑j=0Cyij∗logpij
衡量预测概率分布和真实概率分布的差异性。取值越小越好。对预测概率敏感。
回归指标
平均绝对误差
平均绝对误差Mean Absolute Error,也称为L1范数损失。
MAE = 1 N ∑ i = 0 N ∣ y i − p i ∣ \frac{1}{N}\sum_{i=0}^N{|y_i-p_i|} N1∑i=0N∣yi−pi∣
对数据分布的中值进行拟合。
缺点:
- 有些模型(如XGBoost)必须要求损失函数有二阶导,不能直接优化MAE。
加权平均绝对误差Weighted Mean Absolute Error是其变种。比如可以考虑时间因素。
WMAE = 1 N ∑ i = 0 N w i ∣ y i − p i ∣ \frac{1}{N}\sum_{i=0}^N{w_i|y_i-p_i|} N1∑i=0Nwi∣yi−pi∣
平均绝对百分误差
MAPE = 100 N ∑ i = 0 N ∣ y i − p i ∣ y i \frac{100}{N}\sum_{i=0}^N{\frac{|y_i-p_i|}{y_i}} N100∑i=0Nyi∣yi−pi∣,要求 y i ≠ 0 y_i\neq0 yi=0
优点:
- 其计算与量纲无关,易于比较。
缺点:
- 对负值误差的惩罚大于正值误差(因为分母y小了)。
- 在 y i y_i yi = 0处无定义,或者太小的时候导致MAPE过大
均方根误差
对数据分布的平均值进行拟合。
RMSE = 1 N ∑ i = 0 N ( y i − p i ) 2 \sqrt{\frac{1}{N}\sum_{i=0}^N{(y_i-p_i)^2}} N1∑i=0N(yi−pi)2
缺点:
- 对大误差样本有更大惩罚。有可能模型在95%的情况下都有较好的预测结果,但是剩下的情况导致模型的RMSE一直居高不下。
- 对离群点敏感,健壮性不如MAE。
均方根对数误差
Root Mean Squared Logarithmic Error (RMSLE)
RMSLE = 1 N ∑ i = 0 N ( l o g ( y i + 1 ) − l o g ( p i + 1 ) ) 2 \sqrt{\frac{1}{N}\sum_{i=0}^N{(log(y_i+1)-log(p_i+1))^2}} N1∑i=0N(log(yi+1)−log(pi+1))2
缺点:
-
对预测值偏小的样本惩罚比对预测值偏大的样本惩罚更大。
-
有可能无法直接优化RMSLE,但是若可以优化RMSE,可以先对预测目标进行对数变换 y n e w = l o g ( y + 1 ) y_{new}=log(y+1) ynew=log(y+1)。
排序指标
// TODO
平均准确率均值
Mean Average Precision (MAP)
公式分两部分计算
归一化贴现累计收益
Normalized Discounted Cumulative Gain (NDCG)
比较检验
假设检验
我们不知道学习器泛化错误率,只能知道测试错误率。设泛化错误率是 ϵ \epsilon ϵ,测试错误率是 ϵ ^ \hat\epsilon ϵ^, 测试样本为m,其中有e个样本被误分类。则该学习器被测出来测试错误率为 ϵ ^ \hat\epsilon ϵ^的概率是 P ( ϵ ^ ; ϵ ) = C ( m , ϵ ^ ∗ m ) ϵ ϵ ^ ∗ m ( 1 − ϵ ) m − ϵ ^ P(\hat\epsilon;\epsilon)=C(m, \hat\epsilon*m)\epsilon^{\hat\epsilon*m}(1-\epsilon)^{m-\hat\epsilon} P(ϵ^;ϵ)=C(m,ϵ^∗m)ϵϵ^∗m(1−ϵ)m−ϵ^.
交叉验证t test
可采用5*2交叉验证:做5次2折交叉验证。每次2折交叉验证之前随即将数据打乱。
t = μ 0.2 ∑ i = 1 5 σ i 2 t = \frac{\mu}{\sqrt{0.2\sum_{i=1}^5\sigma_i^2}} t=0.2∑i=15σi2 μ
McNemar检验
若我们假设两学习器性能相同,应该有 e 01 e_{01} e01 = e 10 e_{10} e10(下标分别表示两个学习器分类是否正确的情况). 变量| e 01 e_{01} e01- e 10 e_{10} e10|应当服从正态分布,均值为1,方差为 e 01 e_{01} e01+ e 10 e_{10} e10。称作卡方分布。
Friedman检验与Nemenyi后续检验
在一组数据集上比较多组算法。
距离
余弦距离
在文本、图像等领域,研究的对象特征维度很高,余弦相似度应用较广。欧氏距离的数值受到维度影响较大,范围不固定,含义比较模糊。
Reference
- 《美团机器学习实践》by美团算法团队,第一章
- 《机器学习》by周志华,第二章
- 《百面机器学习:算法工程师带你去》by葫芦娃,第二章