评估指标、稀疏性

目录

1、分类评估指标

准确率

精确率 VS 召回率

精确率(查准率)

召回率(查全率)

f1-score

P-R曲线

AUC

ROC曲线

 对数损失

2、回归评估指标

平均绝对误差

平均绝对百分误差

均方根误差

均方根对数误差

3、L1正则化与稀疏性

交叉熵损失函数

过拟合

权重衰减

丢弃法

衰减和爆炸



1、分类评估指标

TP(Ture Positive): 把正的判断为正的数目 
FN(False Negative): 把正的错判为负的数目 
FP(False Positive): 把负的错判为正的数目
TN(True Negative): 把负的判为负的数目 

准确率

  • 在所有样本中判断正确的样本占比,[预测正确的样本] / [预测为正],(TP + TN)/ 预测为正
  • 缺点:不同类别的样本比例非常不均匀的时候,占比大的类别往往成为影响准确率的最主要因素
  • 缓解:平均准确率(每个类别下的样本准确率的算术平均)

精确率 VS 召回率

分子:实际正样本 and 预测为正样本

分母:

  • 精确率:预测为正样本
  • 召回率:实际为正样本

排序时,通常没有一个确定的阈值将得到的结果直接判定为正样本或负样本,而是采用topN返回结果的P和R值来衡量模型的排序性能。即认为模型返回的TopN的结果就是模型判定的正样本,然后计算前N个位置上的精确率Precision@N和前N个位置的召回率Recall@N。

精确率(查准率)

  • 针对预测结果而言的,预测为正样本的真实正样本的占比,[正样本 and  预测为正] / [预测为正],P = TP / (TP + FP)
  • 精确率是二分类指标,准确率可应用于多分类

召回率(查全率)

  • 针对样本而言,所有正样本中预测为正样本的占比,[正样本 and  预测为正] / [正样本],R = TP / (TP + FN)

精确率和召回率是一对矛盾,例如极端情况下,只搜索出了一个结果,且是正确的,那么Precision就是100%,但是Recall就很低;而如果把所有结果都返回,那么比如Recall是100%,但是Precision就会很低。

f1-score

  • 兼顾了精确率和召回率。
  • F1 = 2 * \frac{p * r}{p + r}

General F_\beta \ Score

  • F_\beta = (1 + \beta^2) * \frac{p * r}{(\beta^2p) + r}
  • \beta>1,召回率影响更大,\beta < 1精确率影响更大

P-R曲线

横轴-召回率,纵轴-精确率,P-R曲线越靠近右上角越好,曲线下的面积叫做AP分数。

P-R曲线的一个点表示,在某一阈值下,模型将大于该阈值的结果判定为正样本,小于该阈值的结果判定为负样本,此时返回结果对应的P和R,整条P-R曲线通过将阈值从高到低移动而生成

AUC

强调的是序的关系;AUC的物理意义为任取一对正例和负例,正例得分大于负例得分的概率,AUC越大,表明方法效果越好。AUC计算主要与排序有关,所以它对排序敏感,而对预测分数没那么敏感。

举个🌰:

有5个样本,标签[1,1,1,0,0],预测值[0.9,0.8,0.3,0.2,0.4],则一共有3*2=6个正负样本对,我们这样计算AUC,对于每个正样本,看他预测值高于几个负样本,例如这边的AUC=(2+2+1)/6=5/6。这样计算AUC是O(n^2)的时间复杂度,一般编程我们不用这种方法,先将样本按预测值由小到大排序, auc=\frac{\sum(pos\_index)- pos\_num * (pos\_num + 1)/2}{pos\_num * neg\_num},其中pos_index是正样本排序后的索引位置(索引从1开始),pos_num是正样本数,neg_num是负样本数。但是这么做有一个问题,如果正例和负例得分一样怎么办。

PCOC

预估点击的平均点击率/ 真实的平均点击率

ROC曲线

真阳性率:所有正样本中预测为正样本的占比,[正样本 and  预测为正] / [正样本],TPR = TP / (TP + FN)

假阳性率:负样本中被预测为正样本的占比,[负样本 and  预测为正] / [负样本],FPR = FP / (TN + FP)

ROC曲线是通过不断移动分类器的“截断点(区分正负预测结果的阈值)”来生成的,ROC曲线通过将阈值从高到低移动而生成。精确率、召回率评估时需要对预测概率设分类阈值(是的模型多了一个超参,这个超参会影响模型的泛化能力)。ROC曲线无需设定这样的阈值,ROC曲线越靠近左上角越好,

绘制方法一:设正样本数量P(纵轴刻度间隔设为1/P),负样本数量N(横轴刻度间隔设为1/N),依据模型输出值从高到低对样本排序,每遇到一个正样本就沿纵轴方向绘制一个刻度间隔的曲线,遇到负样本就沿横轴方向绘制一个刻度间隔的曲线,知道遍历完所有样本,最终停在(1,1)。

二:依据模型输出值从高到低对样本排序,以每条样本的预测概率为阈值,计算对应的FPR和TPR,然后用线段连接。

 对数损失

logloss = -\frac{1}{N}\cdot \sum_{i=1}^N \sum_{j=1}^C y_{ij}\cdot logp_{ij}

其中,N为样本数,C为类别数,y_{ij}=1表示第i条样本的类别为j,p_{ij}为第i条样本类别j的概率。logloss衡量的是预测概率分布和真实概率分布的差异性,取值越小越好。与AUC不同,logloss对预测概率敏感

2、回归评估指标

平均绝对误差

平均绝对误差(MAE),也叫L1范数损失,MAE能很好的刻画预测值与真实值的偏差,模型使用MAE作为损失函数是对数据分布的中值进行拟合。某些模型例如XGBoost要求损失函数二节可导,所以不能直接优化MAE。

MAE=\frac{1}{N} \cdot \sum_{i=1}^N|y_i - p_i|

平均绝对百分误差

平均绝对百分误差(MAPE),与量纲无关,故特定场景下不同问题具有一定的可比性。其缺点也很明显,

  • y_i=0处无定义,且若y_i接近0可能导致MAPE大于100%
  • MAPE对负值误差(当预测值高于实际值时)的惩罚大于正值误差,这个有点疑问,不对称性是因为分母y_i引入的?

MAPE = \frac{100}{N} \cdot \sum_{i=1}^N|\frac{y_i-p_i}{y_i}|,\ y_i \neq0

均方根误差

均方根误差(RMSE),代表的是预测值和真实值差值的样本标准差。RMSE作为损失函数是对数据分布的平均值进行拟合

  • 与MAE相比,RMSE对大误差样本有更大的惩罚,对离群点敏感。

RMSE = \sqrt{\frac{1}{N}\cdot \sum_{i=1}^N(y_i - p_i)^2}

均方根对数误差

均方根对数误差(RMSLE),对预测值偏小的样本惩罚比对预测值偏大的样本惩罚更大(对数函数的特性),例如真实值200,预测成150的惩罚会比250的惩罚大。若选用RMSLE,没办法直接优化RMSLE但是能直接优化RMSE的模型,通常会对预测目标进行对数变换y_{new}=log(y+1),最后预测值再还原p=exp(p_{new})-1

RMSLE = \sqrt{\frac{1}{N} \sum_{i=1}^N(log(y_i +1) - log(p_i + 1))^2}

3、L1正则化与稀疏性

1、解空间形状

事实上,带正则项与带约束条件是等价的,考虑二维,L2的带约束条件圆形,L1的带约束条件菱形。

2、函数叠加

这边是从梯度来理解的。考虑一维的情况,原始目标函数L(w),L1正则L(w) + C|w|,L2正则L(w) + Cw^2,这边的特征稀疏性,指参数为0的情况比较多,但从原始目标函数和L2正则我们没看出在0取最小值的情况。关于L1正则,在0左侧,导数是原目标函数的导数-C,只要原目标函数在0的左侧小于C,则带L1正则的目标函数的导数小于0,即在0的左侧递减。 在0右侧,导数是原目标函数的导数+C,只要原目标函数在0的右侧大于-C,则带L1正则的目标函数的导数大于0,即在0的右侧递增,此时在0处取极小值。 

3、贝叶斯先验

L1相当于对模型参数引入了拉普拉斯先验,L2相当于引入了高斯先验。而拉普拉斯先验使参数为0的可能性更大,下图是高斯分布,可见高斯分布在极值点(0)处是平滑的,即高斯分布认为在极值点附近取不同的值的可能性是接近的。拉普拉斯在极值点(0)处是一个尖峰,所以拉普拉斯中参数为0的可能性更高。

交叉熵损失函数

H(y^{(i)}, \hat{y}^{(i)}) = -\sum_{j=1}^q y^{(i)}_jlog(\hat{y}_j^{(i)})

交叉熵只关心对正确类别的预测概率,因为只要其值足够大,就可以确保分类结果正确。最小化交叉熵损失函数等价于最大化训练数据集所有标签类别的联合预测概率。

过拟合

权重衰减

L2范数正则化在模型原损失函数基础上添加L2范数惩罚项,从而得到训练所需要最小化的函数。L2范数正则化令权重先自乘小余1的数,再减去不含惩罚项的梯度,因此,L2范数正则化又叫权重衰减。

丢弃法

倒置丢弃法(inverted dropout),对该隐藏层使用丢弃法时,该层的隐藏层但愿将有一定的概率被丢弃掉,设丢弃的概率是p,则有p的概率h_i会被清零,有1-p的概率h_i会被除以1-p做拉伸,丢弃法不改变其输入的期望值。例如h_2和h_5被清零,此时输出值的计算不再依赖h_2和h_5,反向传播时,与这两个隐藏层单元相关的权重的梯度均为0。由于丢弃是随机的,该层的每个神经元都有可能被清零,输出层的计算无法过度依赖该层的每一个神经元的值,在训练时起到正则化作用,以应对过拟合。测试时,为了得到更加确定性的结果,一般不使用丢弃法。

h_i^{'} = \frac{\xi _i}{1-p} h_i

衰减和爆炸

当层数变多时,模型的数值稳定性容易变差。

为了应对梯度爆炸可以采用梯度裁剪

参考-百面机器学习

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值