适用于分类问题的损失函数

以二分类为例,损失函数 - 图1,损失函数通常表示为损失函数 - 图2的递减函数,我们希望损失函数 - 图3

0-1损失函数

  1. ![](https://cdn.nlark.com/yuque/__latex/45ae23aae48c214911734901c8f8dad6.svg#card=math&code=%5CLarge%20L%28%7By_%7Bi%7D%7D%2Cf%28x_%7Bi%7D%29%29%20%3D%5Cbegin%7Bcases%7D%0A1%20%26%20%7By_%7Bi%7D%7D%20%5Cneq%20f%28x_%7Bi%7D%29%5C%5C%0A0%20%26%20%7By_%7Bi%7D%7D%20%3D%20%20f%28x_%7Bi%7D%29%0A%5Cend%7Bcases%7D%0A%0A&height=49&width=242) ![](https://cdn.nlark.com/yuque/__latex/8920749283db2750239a6489aca53038.svg#card=math&code=%5CLarge%20%0AL%28%7By_%7Bi%7D%7D%2Cf%28x_%7Bi%7D%29%29%20%3D%5Cbegin%7Bcases%7D%0A1%26%20%7C%7By_%7Bi%7D%7D%20-%20f%28x_%7Bi%7D%29%7C%20%5Cgeq%20t%5C%5C%0A0%20%26%20%7C%7By_%7Bi%7D%7D%20-%20f%28x_%7Bi%7D%29%7C%20%5Cleq%20%20t%0A%5Cend%7Bcases%7D&height=49&width=283)<br /> 以应用在分类和回归中,直观的刻画分类的错误率,但是因为其非凸,非光滑的特点,使得算法对其很难进行直接优化。

合页损失函数

损失函数 - 图4
合页损失函数常用于SVM中,如果模型分类正确,损失为0,否则损失为损失函数 - 图5
在SVM中合页损失函数表示为
损失函数 - 图6
模型分类正确且间隔大于1时,损失为0,否则为损失函数 - 图7

Logistic损失函数

损失函数 - 图8
Logistic损失函数是是0-1损失函数的凸上界,且该函数处处光滑。但是该损失函数对所有样本点都惩罚,因此对异常值更加敏感。

交叉熵损失函数Cross-Entropy

损失函数 - 图9
损失函数 - 图10
交叉熵损失函数也是0-1损失函数的光滑凸上界,当预测值 f∈[−1,1]时,另一个常用的代理损失函数是交叉熵损失函数

指数损失函数Exponential(AdaBoost)

损失函数 - 图11
AdaBoost使用指数损失函数,对异常点敏感,鲁棒性不够

对数损失函数(LR)

损失函数 - 图12

适用于回归问题的损失函数

对于回归问题,损失函数 - 图13,我们希望损失函数 - 图14

平方损失函数(最小二乘法)

损失函数 - 图15
平方损失函数是光滑的,可以用梯度下降法求解,但是,当预测值和真实值差异较大时,它的惩罚力度较大,因此对异常点较为敏感。

绝对损失函数

损失函数 - 图16
绝对损失函数对异常点不敏感,其鲁棒性比平方损失更强一些,但是它在f = y处不可导。

Huber损失函数

损失函数 - 图17
Huber损失函数在∣f−y∣较小时为平方损失,在∣f−y∣较大时为线性损失,且处处可导,对异常点鲁棒性较好。

log-cosh损失函数

损失函数 - 图18
log-cosh损失函数比均方损失函数更加光滑,具有huber损失函数的所有优点,且二阶可导。因此可以使用牛顿法来优化计算,但是在误差很大情况下,一阶梯度和Hessian会变成定值,导致牛顿法失效。

分位数损失函数

损失函数 - 图19
预测的是目标的取值范围而不是值,损失函数 - 图20是所需的分为数,介于0和1之间,损失函数 - 图21等于0.5时,相当于MAE。设置多个损失函数 - 图22值,得到多个预测模型,然后绘制成图表,即可知道预测范围及对应概率(两个损失函数 - 图23值相减)

最后如果转载,麻烦留个本文的链接,因为如果读者或我自己发现文章有错误,我会在这里更正,留个本文的链接,防止我暂时的疏漏耽误了他人宝贵的时间。