博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
机器学习中的损失函数
阅读量:4068 次
发布时间:2019-05-25

本文共 1299 字,大约阅读时间需要 4 分钟。

监督学习问题是在假设空间中选取模型作为决策函数,对于给定的输入X,由f(x)给出对应的输出Y,这个输出的预测值可能与真实值一致或不一致,可以用损失函数(loss function)代价函数(cost function) 来度量预测错误的程度。

  • 0-1损失函数:

f(x)={
1,Yf(X)0,Y=f(X)
f ( x ) = { 1 , Y ≠ f ( X ) 0 , Y = f ( X )

  • 平方损失函数:

L(Y,f(X))=(Yf(X))2 L ( Y , f ( X ) ) = ( Y − f ( X ) ) 2

def mse(true, pred):    return np.sum(((true – pred) ** 2))from sklearn.metrics import mean_squared_error
  • 绝对损失函数:

L(Y,f(X))=|Yf(X)| L ( Y , f ( X ) ) = | Y − f ( X ) |

def mae(true, pred):    return np.sum(np.abs(true – pred))from sklearn.metrics import mean_absolute_error

MSE vs MAE

  • 由于MSE对误差(e)进行平方操作(y - y_predicted = e),如果e> 1,误差的值会增加很多。如果我们的数据中有一个离群点,e的值将会很高,将会远远大于|e|。这将使得和以MAE为损失的模型相比,以MSE为损失的模型会赋予更高的权重给离群点
  • MAE损失适用于训练数据被离群点损坏的时候(即,在训练数据而非测试数据中,我们错误地获得了不切实际的过大正值或负值)

如果离群点是会影响业务、而且是应该被检测到的异常值,那么我们应该使用MSE。另一方面,如果我们认为离群点仅仅代表数据损坏,那么我们应该选择MAE作为损失。

  • 对数损失函数(对数似然损失函数):

L(Y,P(Y|X))=logP(Y|X) L ( Y , P ( Y | X ) ) = − l o g P ( Y | X )

  • 指数损失(exponential loss):

lexp(z)=exp(z) l e x p ( z ) = e x p ( − z )

  • 对率损失(logistic loss):

llog(z)=log(1+exp(z)) l l o g ( z ) = l o g ( 1 + e x p ( − z ) )

  • hinge损失:

lhinge(z)=max(0,1z) l h i n g e ( z ) = m a x ( 0 , 1 − z )

经验风险最小化:当模型是条件概率分布,损失函数是对数损失函数时,经验风险最小化等价于极大似然估计(MLE)。

结构风险最小化:防止过拟合提出的策略,在经验风险熵加上表示模型复杂度的正则化项或罚项。贝叶斯估计中的最大后验概率估计(MAP)就是结构风险最小化的一个例子。

《统计学习方法》 P7

《机器学习》 P130

《深度学习》

转载地址:http://jioji.baihongyu.com/

你可能感兴趣的文章
Jenkins + Docker + SpringCloud 微服务持续集成(一)
查看>>
Jenkins + Docker + SpringCloud 微服务持续集成 - 单机部署(二)
查看>>
Jenkins + Docker + SpringCloud 微服务持续集成 - 高可用集群部署(三)
查看>>
Golang struct 指针引用用法(声明入门篇)
查看>>
Linux 粘滞位 suid sgid
查看>>
C#控件集DotNetBar安装及破解
查看>>
Winform皮肤控件IrisSkin4.dll使用
查看>>
Winform多线程
查看>>
C# 托管与非托管
查看>>
Node.js中的事件驱动编程详解
查看>>
mongodb 命令
查看>>
MongoDB基本使用
查看>>
mongodb管理与安全认证
查看>>
nodejs内存控制
查看>>
nodejs Stream使用中的陷阱
查看>>
MongoDB 数据文件备份与恢复
查看>>
数据库索引介绍及使用
查看>>
MongoDB数据库插入、更新和删除操作详解
查看>>
MongoDB文档(Document)全局唯一ID的设计思路
查看>>
mongoDB简介
查看>>