加入收藏 | 设为首页 | 会员中心 | 我要投稿 惠州站长网 (https://www.0752zz.com.cn/)- 办公协同、云通信、物联设备、操作系统、高性能计算!
当前位置: 首页 > 建站 > 正文

Python机器学习中七种损失函数的科学指南

发布时间:2019-11-12 10:10:29 所属栏目:建站 来源:CDA数据分析师
导读:副标题#e# 损失函数实际上是我们经常使用的这些技术的核心,本文介绍了多种损失函数,他们的工作位置以及如何在Python中进行编码 前言 首先想象一下一个场景你已经在给定的数据集上训练了一个机器学习模型,并且已经准备将其放在客户面前。但是,这个时候你

Sigmoid函数的范围是[0,1],使其适合于计算概率。

Python机器学习中七种损失函数的科学指南

尝试自己输入一下代码,然再后查看下面的update_weight函数的代码。

def update_weights_BCE(m1, m2, b, X1, X2, Y, learning_rate): m1_deriv = 0 m2_deriv = 0 b_deriv = 0 N = len(X1) for i in range(N): s = 1 / (1 / (1 + math.exp(-m1*X1[i] - m2*X2[i] - b))) # Calculate partial derivatives m1_deriv += -X1[i] * (s - Y[i]) m2_deriv += -X2[i] * (s - Y[i]) b_deriv += -(s - Y[i]) # We subtract because the derivatives point in direction of steepest ascent m1 -= (m1_deriv / float(N)) * learning_rate m2 -= (m2_deriv / float(N)) * learning_rate b -= (b_deriv / float(N)) * learning_rate return m1, m2, b

关于使用权重更新规则进行1000次迭代(具有不同的alpha值),我得到以下图表:

Python机器学习中七种损失函数的科学指南

2.铰链损失(Hinge Loss)

铰链损失主要用于支持标签为-1和1的支持向量机(SVM)分类器。因此,请确保将数据集中“Malignant”类的标签从0更改为-1。

铰链损失不仅会惩罚错误的预测,还会惩罚不确定的正确预测。

输入输出对(x,y)的铰链损失为:

def update_weights_Hinge(m1, m2, b, X1, X2, Y, learning_rate): m1_deriv = 0 m2_deriv = 0 b_deriv = 0 N = len(X1) for i in range(N): # Calculate partial derivatives if Y[i]*(m1*X1[i] + m2*X2[i] + b) <= 1: m1_deriv += -X1[i] * Y[i] m2_deriv += -X2[i] * Y[i] b_deriv += -Y[i] # else derivatives are zero # We subtract because the derivatives point in direction of steepest ascent m1 -= (m1_deriv / float(N)) * learning_rate m2 -= (m2_deriv / float(N)) * learning_rate b -= (b_deriv / float(N)) * learning_rate return m1, m2, b

在使用三个不同的alpha值对2000次迭代运行update函数之后,我们获得了以下图:

Python机器学习中七种损失函数的科学指南

铰链损失简化了SVM的数学运算,同时使损失最大化(与对数损失相比)。当我们要做出实时决策而并不是高度关注准确性时,就可以使用它。

多类分类损失函数

现在电子邮件不只是被归类为垃圾邮件或非垃圾邮件(现在已经不是90年代了!)。它们可以被分为其他各种类别-工作,家庭,社交,晋升等。在现在邮件分类是一个多类别分类用例。

我们将使用鸢尾花数据集来了解其余两个损失函数。我们将使用2个特征X1(萼片长度)和特征X2(花瓣宽度)来预测鸢尾花(Setosa,Versicolor或Virginica)的类别(Y)

我们的任务是使用神经网络模型和Keras中内置的Adam优化器来实现分类。这是因为随着参数数量的增加,数学以及代码将变得难以理解。

这是我们数据的散点图:

Python机器学习中七种损失函数的科学指南

1.多分类交叉熵损失

多分类交叉熵损失是二分类交叉熵损失的概括。输入向量Xi和相应的单编码目标向量Yi的损耗为:

我们使用softmax函数来找到概率p_ij:

(编辑:惠州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读