机器学习中常见的损失函数和代价函数
损失函数 (loss function) 是用来估量在一个样本点上模型的预测值 h(x) 与真实值 y 的不一致程度。它是一个非负实值函数,通常使用 L(y, h(x)) 来表示。
损失函数可由 y 的类型来分类,而第三章提升树的梯度提升法在高层面上讲是相同的,不同的是用的不一样损失函数。
如果 y 是离散型变量 (对应着提升分类树 y 和 sign(h) 取 -1 和 1)
0-1 损失函数 (misclassification)
指数损失函数 (adaBoost)
对数损失函数 (logitBoost)
支持向量损失函数 (support vector)
如果 y 是连续性变量 (对应着提升回归树 y 和 h 取任意实数)
L2 损失函数 (regression boost)
L1 损失函数
Huber 损失函数
下表列出了每个损失函数的具体表达式:
当 y 是离散性变量时对应的问题都是分类问题
真实值 y 和预测值 sign(h) 都规定只能取正负 1
损失函数里面都有 y∙h 这一项而且函数是它的减函数。在这里我们用 1 表示正类,-1 表示反类,那么 y∙h > 0 代表预测结果和真实结果一致,因而损失值低些;反之 y∙h < 0 代表预测结果和真实结果不一致,因而损失值高些
当 y 是连续性变量时对应的问题都是回归问题
真实值 y 和预测值 h(x) 可以取任意实数
损失函数里面都有 |y – h(x)| 这一项而且函数是它的增函数。当真实值 y 和预测值 h(x) 之间差别越大(小),损失值越高(低)
代价函数 (cost function)就是所有样本点上的损失函数的加总。代价函数越小,模型的鲁棒性 (robustness) 就越好。
文章参考地址:https://mp.weixin.qq.com/s/mf4QIw6pILRoin50O4t1pg