一、预测问题评价指标
均方误差(mse)
均方误差(mean square error)简称mse,公式如下:
其中y_i表示真实值,比如模型的真实,比如模型的label;“y_i尖”是预测值,如常用的y_pred。
mse的范围:[0,+∞),预测值和真实值完全吻合时,mse=0,即完美模型(实际模型训练中,基本不会出现的啦!!!);误差越大,mse该值越大。
(目前没有时间学习latex公式啊,等我学会了,再更新下,重新敲啊,大家饶过我吧,哈哈)
均方根误差(rmse)
均方根误差(root mean square error)简称rmse,公式如下:
其实就是mse开根号得到的,已经有mse了,为啥还定义一个开根号版本(rmse)呢?据解释说这样数量级上比较直观。
rmse的范围:[0,+∞),预测值和真实值完全吻合时,rmse=0,即完美模型;误差越大,rmse值越大。
平均绝对误差(mae)
平均绝对误差(mean absolute error),简称mae,公式如下:
mae的范围:[0,+∞),预测值和真实值完全吻合时,mae=0,即完美模型;误差越大,mae值越大。
mae对极端值比较敏感,当没有mse敏感。
平均绝对百分比误差(mape)
平均绝对百分比误差(mean absolute percentage error),简称mape,公式如下:
和mae很像,就是mae除了一个分母。
mape的范围:[0,+∞),预测值和真实值完全吻合时,mape=0,即完美模型;误差越大,mape值越大。
注意:当真实值y_i中存在数据等于0时,该公式不可用,因分母不能为0
对称平均绝对百分比误差(smape)
对称平均绝对百分比误差(symmetric mean absolute percentage error)简称smape,公式如下:
和mae和mape都很像,首先,是在mae的基础上除以了一个分母,其次,mape除以的分母不同罢了
注意:当真实值y_i中有数据为0,且预测值“y_i尖”中也有数据为0时,该公式不可用,存在分母为0问题。
均方对数误差(msle)
均方对数误差(mean squared log error),简称msle,公式如下:
中位绝对误差(medae)
中位绝对误差(median absolute error)简称medae,公式如下:
以上7种预测评价指标如何选用?
1.单个指标选用:
- 当看重真实值和预测值间的差的平方时,选用mse或rmse
- 当看重真实值和预测值间的绝对值误差时,选用mae或medae,两者分别是误差的均值和中位数,mae对极端值比较敏感
- 当看重真实值的数据中存在量级差,或不同样本的真实值存在量级差,而且更加关注真实值和预测值的百分比差异时,选用mape或smape
- 当y具有随着x进行指数变动的趋势时,选用msle
2.多个指标搭配使用
- rmse与mae联合使用,可以看出样本误差的离散程度,若rmse远大于mae,则可以知道不同样本的误差差别很大
- mae与mape,再结合“y八”(即y一横,y平均),可以估算不同数量级样例的拟合程度,若mae远大于mape*(y平均),则可能是模型对真实值小的样本预测更准,此时就可以考虑为不同数量级的样本建立不同的模型。
二、分类问题评价指标
2.1单项分类问题指标
准确率(accuracy)
准确率是指预测正确的结果占总样本的百分比,公式如下:
acc=(tp+tn)/(tp+tn+fp+fn)
注意:当样本不平衡时,准确率不适合作为衡量指标,即样本不平衡时,准确率就会失效。如:一个总样本中,正样本占90%,负样本占10%,样本是严重不平衡的,此时我们只需要将全部样本预测为正样本就可得到90%的高准确率,但实际我们并没有很用心的分类,只是随便无脑一分而已。
精确率/查准率(precision)
精确率/查准率是指所有被预测为正的样本中实际为正的样本的概率(不准错,宁愿漏检,也不能让现有的预测有错),公式如下:
pre=tp/(tp+fp)
召回率/查全率(recall)
召回率/查全率是指实际为正的样本中被预测为正样本的概率(不准漏,宁可错杀一千,也不放过一个),公式如下:
recall=tp/(tp+fn)
2.2综合分类问题指标
f1分数(f1 score)
f1分数是精确率和召回率的博弈,公式如下。精确率和召回率是相互制约的关系,即当精确率过高,召回率就会偏小当召回率过高,精确率就会偏小,其关系如下图2.2,当然,我们希望我们的模型精确率越高越好,召回率越高越好,但两者是矛盾的,所以我们选取一个点,一个两者间的平衡作为f1分数。
f1 score=(2×precision×recall)/(precision+recall)
pr曲线
pr曲线是指以召回率为横坐标,精确率为纵坐标,如图2.2.1,ap是pr曲线与x轴、y轴围成的面积,ap=1时的模型性能最好,ap越接近1越好,最小也得大于0.5。
roc曲线
roc曲线是指以假阳性率fpr为横坐标,真阳性率tpr为纵坐标,如图2.2.2。
假阳性率fpr:是指所有实际为负例的样本中,模型错误的预测为正例的样本比例,可以理解为所有阴性群体中被检测出来阳性的比率(误诊率),fpr越接近0越好,公式如下:
fpr=fp/(fp+tn):即fpr=0, tpr=1,这意味着fn=0,并且fp=0。这是一个完美的分类器,它将所有的样本都正确分类。、
- (1,0):即fpr=1,tpr=0,发现这是一个最糟糕的分类器,因为它成功避开了所有的正确答案
- (0,0):即fpr=tpr=0,即fp=tp=0,可以发现该分类器预测所有的样本都为负样本。
- (1,1):即fpr=tpr=1,即tn=fn=0,可以发现该分类器预测所有样本都为正样本。
- 虚线y=x:表示的是一个采用随机猜测策略的分类器的结果(fp = tn, tp = fn,这样fp+tp = tn + fn,即y = n,也就是随机猜测了),例如(0.5,0.5),表示该分类器随机对于一半的样本猜测其为正样本,另外一半的样本为负样本。
综上,roc曲线越接近左上角,性能越好。
auc曲线
auc是指roc曲线下的面积,用于衡量分类器性能,auc越接近1,分类性能越好;auc越接近0,分类性能越差。
- auc = 1,是完美分类器,采用这个预测模型时,存在至少一个阈值能得出完美预测。绝大多数预测的场合,不存在完美分类器。
- 0.5 < auc < 1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值。
- auc = 0.5,跟随机猜测一样(例:丢铜板),模型没有预测价值。
- auc < 0.5,比随机猜测还差;但只要总是反预测而行,就优于随机猜测。
为什么常用roc曲线作为分类评价指标
因为roc曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,roc曲线能够保持不变。在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化,用roc作为衡量分类情况,更加稳定。下图是roc曲线和precision-recall曲线的对比:
在上图中,(a)和©为roc曲线,(b)和(d)为pr曲线。(a)和(b)展示的是分类其在原始测试集(正负样本分布平衡)的结果,©和(d)是将测试集中负样本的数量增加到原来的10倍后,分类器的结果。可以明显的看出,roc曲线基本保持原貌,而pr曲线则变化较大。
三、回归问题评价指标
mae
平均绝对误差(mean absolute error),简称mae,公式如下:
mae的范围:[0,+∞),预测值和真实值完全吻合时,mae=0,即完美模型;误差越大,mae值越大。
mae对极端值比较敏感。
下图是mae函数的图像,其中真实值(目标值)是100,预测值范围为[-1000,1000],y轴代表mae取值范围从[0,+∞),且损失在100处最小。
mse
均方误差(mean square error)简称mse,公式如下:
其中y_i表示真实值,比如模型的真实,比如模型的label;“y_i尖”是预测值,如常用的y_pred。
mse的范围:[0,+∞),预测值和真实值完全吻合时,mse=0,即完美模型(实际模型训练中,基本不会出现的啦!!!);误差越大,mse该值越大。
下图是mse函数的图像,其中真实值(目标值)是100,预测值范围为[-1000,1000],y轴代表mse取值范围从[0,+∞),且损失在100处最小。
rmse
均方根误差(root mean square error)简称rmse,公式如下:
其实就是mse开根号得到的,已经有mse了,为啥还定义一个开根号版本(rmse)呢?据解释说这样数量级上比较直观。
rmse的范围:[0,+∞),预测值和真实值完全吻合时,rmse=0,即完美模型;误差越大,rmse值越大。
三者的比较
- mse计算简便,但mae对异常点具有更好的鲁棒性,rmse是mse的平方根,与mae在同一量级
- mse对误差取了平方(令e=真实值-预测值),因此若e>1,则mse会进一步增大误差。如果数据中存在异常点,那么e值就会很大,而e则会远大于|e|。因此,相对于使用mae计算损失,使用mse的模型会赋予异常点更大的权重。
- 用rmse计算损失的模型会以牺牲了其他样本的误差为代价,朝着减小异常点误差的方向更新,然而这就会降低模型的整体性能。如果训练数据被异常点所污染,那么mae损失就更好用。
- mae存在一个严重的问题(特别是对于神经网络):更新的梯度始终相同,也就是说,即使对于很小的损失值,梯度也很大,这样不利于模型的学习。为了解决这个缺陷,可以使用变化的学习率,在损失接近最小值时降低学习率。而mse在这种情况下的表现就很好,即便使用固定的学习率也可以有效收敛。mse损失的梯度随损失增大而增大,而损失趋于0时则会减小。这使得在训练结束时,使用mse模型的结果会更精确。
所以,如何选择mae、mse、rmse:
- 若异常点代表在商业中很重要的异常情况,并且需要被检测出来,则选用mse;
- 若只把异常值当作受损数据,则选用mae
处理异常点时,mae损失函数更稳定,但它的导数不连续,因此求解效率较低。mse损失函数对异常点更敏感,但通过令其导数为0,可以得到更稳定的封闭解。
四、常用损失
交叉熵损失与均值平方差损失是机器学习中常用的求损失函数的方式,其中交叉熵损失(cross entropy)一般针对的是分类问题,而均值平方差损失(mse)主要针对的是回归问题。
4.1交叉熵损失(cross entropy)
交叉熵损失是kl散度的简化,在了解交叉熵之前,需要对信息论中熵的含义有基本的了解。
4.1.1信息熵
熵:是关于不确定性的描述,指的是整个系统内部样本之间的距离,或称之为系统内样本分布的集中程度、分散程度和混乱程度。
系统内样本越分散,信息熵就越大;分布越有序,信息熵就越小。
信息的大小和随机事件的概率有关,概率越小的事件发生,信息量就越大;概率越大的事件发生,信息量就越小,所以信息的度量应依赖于概率分布p(x)。
假设一离散型数据x=(x0,x1,x2),对应的概率为p(xi)。其中每个事件的信息量为: i(xi)=−log(p(xi)),根据熵的定义可得:
分析上式:
- 对概率取负对数表示了一种可能事件发生时候携带出的信息量
- 把各种可能表示出的信息量乘以其发生的概率之后求和,就表示了整个系统所有信息量的一种期望值。
综上,熵是表示信息量的期望,即平均信息量,而信息量与概率成反比,即概率越大的事件发生时所获得的信息量就越小,概率越小的事件发生时所获得的信息量就越大。
4.1.2kl散度
kl散度用于衡量两个概率分布之间的差异,值越小,表示两个分布就越接近。
公式如下:
离散形式:
连续形式:
特点:
- 非对称性。kl(p||q)≠kl(q||p),kl散度用来度量两个分布的相似度或者距离,但kl散度本身并不是距离。
- 非负性。当p(x)和q(x)两个分布完全相同时,其值为0
- 不满足三角不等式
本质上,kl散度度量的是两者间的信息损失,而不是两者之间的距离。
4.1.3js散度
js散度用于衡量两个概率分布的差异度,是kl散度的变体。
公式如下:
- 解决了kl散度非对称的问题,即满足:js(p||q)=js(q||p)
- 取值范围:[0,1]
4.1.4交叉熵
交叉熵常作为多分类问题的损失函数,用来作为预测值和真实值的距离度量。
给定两个概率分布p,q,p(x)表示正确分布,即真实值的分布,q(x)表示预测分布,即预测值的分布。
- 描述了两个概率分布间的距离
- 交叉熵越小,两个概率分布越接近
4.1.5kl散度、信息熵、交叉熵三者的关系
kl散度=信息熵+交叉熵
交叉熵损失常用于分类问题,而且离散的变量,具体是为啥呢?
因为目标是训练模型使得模型拟合的分布与数据的真实分布差异尽可能小,便想到kl散度
数据集的真实值是确定的,即信息熵h§是确定的常数,因此最小化交叉熵即可。
4.2均方误差损失(mse)
均方误差(mean square error)简称mse,公式如下:
其中y_i表示真实值,比如模型的真实,比如模型的label;“y_i尖”是预测值,如常用的y_pred。
mse的范围:[0,+∞),预测值和真实值完全吻合时,mse=0,即完美模型(实际模型训练中,基本不会出现的啦!!!);误差越大,mse该值越大。
- 交叉熵损失常用于分类问题,而且离散的变量
- 均方误差损失常用于回归问题,而且是连续的变量
五、鲁棒性与泛化性
鲁棒性:指的是模型对于输入数据的健壮性,即模型在遇到各种不同的数据输入时,仍然能够保持高效的表现。一个鲁棒性强的模型能够在噪声、缺失数据或者其他异常情况下也能够准确地预测结果。
泛化性:则是指模型对于新数据的适应能力,即模型能否对于未在训练集中出现的数据进行准确的预测。一个具有很强泛化性的模型能够在不同的数据集上都表现出色,而不仅仅是在训练集上表现好。
通俗点说,鲁棒性关注的是模型对于已知情况的适应能力,而泛化性则关注的是模型对于未知情况的适应能力。深度学习中的目标是构建既有鲁棒性又有泛化性的模型,即能够在多种情况下都能够高效准确预测结果的模型。
https://blog.csdn.net/weixin_44912902/article/details/130168215
(常总结,常复盘,如有问题,欢迎指出、欢迎讨论!!!)
发表评论