Lesson 4.2 逻辑回归参数估计:极大似然估计、相对熵与交叉熵损失函数-2

简介: Lesson 4.2 逻辑回归参数估计:极大似然估计、相对熵与交叉熵损失函数-2

73.png

-np.log2(0.8)
#0.3219280948873623
  • 再次理解交叉熵计算公式中的叠加是类别的叠加。
  • 上述数据集标签由 0-1 转化为 A、B,也被称为名义型变量的独热编码。


2. 多样本交叉熵计算


而对于多个数据集,整体交叉熵实际上是每条数据交叉熵的均值。例如上述数据集,整体交叉熵计算结果为:

74.png

(-np.log2(0.8)-np.log2(0.7)-np.log2(0.6)-np.log2(0.7)) / 4
#0.5220100086782713


据此,我们可以给出多样本交叉熵计算公式如下:75.png



  • 其中 m 为数据量,n 为类别数量。

3. 对比极大似然估计函数


76.png

-np.log(0.8)-np.log(0.7)-np.log(0.6)-np.log(0.7)

尽管具体数值计算结果有所差异,但基本流程都是类似的——取类别 1 的概率的对数运算结果进行累加再取负数。

因此在实际建模过程中,考虑采用极大似然估计构建损失函数,和采用交叉熵构建损失函数,效果是相同的,二者构建的损失函数都能很好的描绘模型预测结果和真实结果的差异程度。不过在机器学习领域,一般以交叉熵损失函数为主。


4. 二分类交叉熵损失函数


据此,我们也可最终推导二分类交叉熵损失函数计算公式,结合极大似然估计的计算公式和交叉熵的基本计算流程,二分类交叉熵损失函数为:


78.png

  • 我们也可以定义一个函数来进行二分类交叉熵损失函数的计算:
def BCE(y, yhat):
    """
    二分类交叉熵损失函数
    """
    return(-(1/len(y))*np.sum(y*np.log2(yhat)+(1-y)*np.log2(1-yhat)))


  • 简单进行验证
y = np.array([1, 0, 0, 1]).reshape(-1, 1)
yhat = np.array([0.8, 0.3, 0.4, 0.7]).reshape(-1, 1)
BCE(y, yhat)
#0.5220100086782713


至此,我们就完成了完整的逻辑回归损失函数的构建。但正如此前所讨论的一样,对于逻辑回归的损失函数来说,尽管也是凸函数,但无法使用最小二乘法进行求解。

































相关文章
|
算法 Java Android开发
Android安全性: 什么是ProGuard,它的作用是什么?
Android安全性: 什么是ProGuard,它的作用是什么?
523 1
|
机器学习/深度学习 人工智能 算法
探索机器学习中的模型优化策略
【8月更文挑战第14天】在机器学习领域,模型的优化是提升预测性能的关键步骤。本文将深入探讨几种有效的模型优化策略,包括超参数调优、正则化方法以及集成学习技术。通过这些策略的应用,可以显著提高模型的泛化能力,减少过拟合现象,并增强模型对新数据的适应能力。
|
API 数据库 数据库管理
Flask Web开发基础:数据库与ORM实战
该文介绍了如何使用 Flask、SQLAlchemy 和 SQLite 实现数据库操作。首先,通过创建虚拟环境和安装 flask-sqlalchemy(版本2.5.1)及 sqlalchemy(版本1.4.47)来设置环境。接着,配置数据库URI,定义User和Movie模型类表示数据库表,并通过db.create_all()创建表。文章还展示了如何插入、查询、更新和删除记录,强调了db.session.commit()在保存更改中的关键作用。查询涉及filter、order_by等方法,提供了一系列示例。
595 1
|
计算机视觉
加法运算
【5月更文挑战第8天】加法运算。
604 4
|
机器学习/深度学习 算法
Lesson 4.2 逻辑回归参数估计:极大似然估计、相对熵与交叉熵损失函数-1
Lesson 4.2 逻辑回归参数估计:极大似然估计、相对熵与交叉熵损失函数-1
|
机器学习/深度学习 算法 数据可视化
Lesson 4.3 梯度下降(Gradient Descent)基本原理与手动实现-1
Lesson 4.3 梯度下降(Gradient Descent)基本原理与手动实现-1
|
开发工具 git
Git 中 merge 和 rebase 的区别
$ git pull --rebase和$ git pull区别 是git fetch + git merge FETCH_HEAD的缩写,所以默认情况下,git pull就是先fetch,然后执行merge操作,如果加-rebase参数,就是使用git rebase代替git merge 。
30583 0
|
机器学习/深度学习 数据可视化 索引
Lesson 5.1 分类模型决策边界
Lesson 5.1 分类模型决策边界
|
机器学习/深度学习 算法 前端开发
机器学习的相关概念与建模流程
机器学习的相关概念与建模流程
机器学习的相关概念与建模流程
|
存储 Shell Python
基于Python的一个开源命令行工具Python Fire
基于Python的一个开源命令行工具Python Fire
697 0
基于Python的一个开源命令行工具Python Fire