前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器学习中的常见问题——损失函数

机器学习中的常见问题——损失函数

作者头像
felixzhao
发布2018-03-20 15:44:37
1.3K0
发布2018-03-20 15:44:37
举报
文章被收录于专栏:null的专栏null的专栏

一、分类算法中的损失函数

1、0-1损失函数

2、Log损失函数

2.1、Log损失

2.2、Logistic回归算法的损失函数

2.3、两者的等价

3、Hinge损失函数

3.1、Hinge损失

Hinge损失是0-1损失函数的一种代理函数,Hinge损失的具体形式如下:

max(0,1−m)

运用Hinge损失的典型分类器是SVM算法。

3.2、SVM的损失函数

3.3、两者的等价

4、指数损失

4.1、指数损失

指数损失是0-1损失函数的一种代理函数,指数损失的具体形式如下:

exp(−m)

运用指数损失的典型分类器是AdaBoost算法。

4.2、AdaBoost基本原理

4.3、两者的等价

5、感知损失

5.1、感知损失

感知损失是Hinge损失的一个变种,感知损失的具体形式如下:

max(0,−m)

运用感知损失的典型分类器是感知机算法。

5.2、感知机算法的损失函数

感知机算法只需要对每个样本判断其是否分类正确,只记录分类错误的样本,其损失函数为:

5.3、两者的等价

Hinge损失对于判定边界附近的点的惩罚力度较高,而感知损失只要样本的类别判定正确即可,而不需要其离判定边界的距离,这样的变化使得其比Hinge损失简单,但是泛化能力没有Hinge损失强。

这里写图片描述
这里写图片描述
代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as np

xmin, xmax = -4, 4
xx = np.linspace(xmin, xmax, 100)
plt.plot([xmin, 0, 0, xmax], [1, 1, 0, 0], 'k-', label="Zero-one loss")
plt.plot(xx, np.where(xx < 1, 1 - xx, 0), 'g-', label="Hinge loss")
plt.plot(xx, np.log2(1 + np.exp(-xx)), 'r-', label="Log loss")
plt.plot(xx, np.exp(-xx), 'c-', label="Exponential loss")
plt.plot(xx, -np.minimum(xx, 0), 'm-', label="Perceptron loss")

plt.ylim((0, 8))
plt.legend(loc="upper right")
plt.xlabel(r"Decision function $f(x)$")
plt.ylabel("$L(y, f(x))$")
plt.show()

参考文章

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、分类算法中的损失函数
    • 1、0-1损失函数
      • 2、Log损失函数
        • 2.1、Log损失
        • 2.2、Logistic回归算法的损失函数
        • 2.3、两者的等价
      • 3、Hinge损失函数
        • 3.1、Hinge损失
        • 3.2、SVM的损失函数
        • 3.3、两者的等价
      • 4、指数损失
        • 4.1、指数损失
        • 4.2、AdaBoost基本原理
        • 4.3、两者的等价
      • 5、感知损失
        • 5.1、感知损失
        • 5.2、感知机算法的损失函数
        • 5.3、两者的等价
    • 参考文章
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档