常见回归和分类的损失函数

       分类和回归是机器学习中研究的两大目标。分类即预测未知数据的类别,分类模型的输出可以是离散的,也可以是连续的,一般是输出每个类别的概率,分类分为二元分类和多元分类,二元分类如逻辑回归(LR)、支持向量机(SVM),多元分类如SoftMax、决策树(ID3、C4.5、CART等三个最著名的决策树)、朴素贝叶斯等。回归是预测在未知数据上的函数值,比如预测房价、股票等,常见的回归机器学习算法有线性回归、CART回归树等。

       无论回归或者分类,通常做法都是最小化损失函数,即L(y,f(x)),用来衡量预测值和真实值之间的差异,通常越小越好。分类问题中常包含yf(x),回归问题中常包含y-f(x),常见的分类和回归损失函数总结如下:

一、回归问题的损失函数

回归问题中,yf(x)通常为实数,所以用残差y-f(x)表示两者的不一致程度。常见的的回归损失函数如下:

  • 平方损失(squared loss):(y-f(x))^2
  • 绝对值(absolute loss):|y-f(x)|
  • Huber损失(huber loss):\begin{cases} \left (y-fx \right )^2, & |y-f(x)|\leq \delta \\ \delta \left | y-f(x) \right |+\frac{1}{2}\delta ^2, & \left| y-f(x) \right |>\delta \end{cases}

其中最常用的平方损失,然而其缺点是对于异常点会施以较大的惩罚,因而不够robust。如果有较多异常点,则绝对值损失表现较好,但绝对值损失的缺点是在y-f(x)=0处不连续可导,因而不容易优化。

Huber损失是对两者的综合,当|y-f(x)|小于事先设定的\delta时,则变为平方损失,大于\delta时则变为绝对值损失。

二、分类问题的损失函数

下面只讨论二分类问题,即y\in \left \{ -1,+1 \right \}.

  • 0-1损失(zero-one loss)

L(y,f(x))=\begin{cases} 0 &if\, yf(x)\geq 0 \\ 1 &if\, yf(x)< 0 \end{cases}

0-1损失对每个错分类的点给以相同的惩罚,但是由于其不连续、非凸,因而常被其他的代理损失函数代替。

  • logistic损失

L(y,f(x))=log(1+e^{-yf(x)})

该损失就是逻辑回归使用的损失函数,使用极大似然估计,化简后即可等价于最小化logistic损失。

  • Hinge loss

L(y,f(x))=max(0, 1-yf(x))

该损失是SVM使用的损失函数,线性可分支持向量机中,yf(x)>1的损失为0,即在间隔之外且分类正确的。由此可导致稀疏解,最终的超平面只和支持向量有关。

  • 指数损失

L(y,f(x))=e^{-yf(x)}

指数损失是在Adaboost中使用的损失函数,利用指数损失和加性模型可快速推导出Adaboost的过程。

 

 

你可能感兴趣的:(机器学)