【机器学习】逻辑回归

目录

一、什么是逻辑回归

二、Sigmoid函数

三、更新参数

四、总结


一、什么是逻辑回归

逻辑回归并不是解决回归任务的,而是常用于解决二分类任务的。

逻辑回归是最简单的机器学习算法 ,但这并不意味着它是最没用的。因为像神经网络这种复杂的机器学习算法,一是会消耗时间计算机资源,二是过于强大而导致提高了过拟合风险(计算机容易学死),对于所有问题并不是用神经网络的效果一定比简单的算法效果好。所以选择机器学习算法时,是先选择简单的,效果不行的情况下,再选择复杂的 。因此,逻辑回归通常是作为基准模型 ,是最常用到的机器学习算法

逻辑回归的决策边界可以是非线性的,形象地说,将两个类别分开的线可以是直线(线性),也可以是弯曲的线类似下图所示(非线性)。

二、Sigmoid函数

将回归任务转换为分类任务,需要将预测值(预测的实际数值)转换为概率值(属于当前类别的概率),即0~1的数值,这个转换用Sigmoid函数实现。公式如下:

式(1)

函数图像如下:

三、交叉熵损失

交叉熵损失是一种损失函数,常与Softmax激活函数搭配,解决多分类问题。它等于m个样本的平均交叉熵误差,公式如下:

如果第 i 个样本的标签为第 k 个类别,那么 的值就是1, 的值就是0。因此,多分类问题的交叉熵损失只与样本的真实类别对应的模型预测概率有关 ,这适用于每个类别都是互斥的情况,即每个样本只能被标记为一种标签的情况

四、更新参数

预测函数、最小似然估计、梯度下降详细内容,参考链接:http://t.csdnimg.cn/S9bfQ

将预测函数带入式(1),预测值转换为概率值,得到:

,其中,i 表示第 i 个特征。

二分类任务中真值1表示属于该类,真值0表示不属于该类,分别对应的预测函数为:

式(2)

式(3)

但这样分开求损失函数计算权重,并不方便,因此需要合并,得到最终的预测函数

,当y=1,变成式(2);当y=0,变成式(3)。

然后接着做极大似然估计,似然函数

,其中 i 表

示第 i 个样本。

似然函数取对数

,其中i表示第 i 个样本。

但是在反向传播中,我们通常习惯于做梯度下降任务,因为这符合逻辑上的将损失降到最小,因此将取对数的结果再加上负号,把梯度上升问题改为了梯度下降问题。除以m是取损失的平均值,得到了二分类交叉熵

,其中 i 表示第 i 个样本,m表示样本总数。二分类交叉熵是一种损失函数,是交叉熵的一个特例,常与Sigmoid激活函数搭配使用,处理二分类问题 。想用逻辑回归解决多分类问题,需要用Softmax激活函数和交叉熵损失函数。

求导过程(不重要,我们只需要知道结果):

其中,i 表示第 i 个样本,j 表示第 j 个特征,最后要把求得梯度反向才是梯度下降的方向。

参数更新

四、总结

基本上所有的分类问题都可以用逻辑回归解决。它的求解速度快 ;模型可解释性强 ,很多参数都有物理含义,便于我们理解,比如大的表示特征重要,小的表示特征不重要。但是像神经网络、支持向量机这种复杂的算法,它计算得到的很多参数都是没有物理意义的,只是求得的结果有用而已,不利于理解。因此,拿到任务后建议先用逻辑回归试一下,不行再考虑一些复杂的算法。

相关推荐
千天夜4 分钟前
激活函数解析:神经网络背后的“驱动力”
人工智能·深度学习·神经网络
大数据面试宝典5 分钟前
用AI来写SQL:让ChatGPT成为你的数据库助手
数据库·人工智能·chatgpt
封步宇AIGC10 分钟前
量化交易系统开发-实时行情自动化交易-3.4.1.2.A股交易数据
人工智能·python·机器学习·数据挖掘
m0_5236742112 分钟前
技术前沿:从强化学习到Prompt Engineering,业务流程管理的创新之路
人工智能·深度学习·目标检测·机器学习·语言模型·自然语言处理·数据挖掘
HappyAcmen22 分钟前
IDEA部署AI代写插件
java·人工智能·intellij-idea
噜噜噜噜鲁先森43 分钟前
看懂本文,入门神经网络Neural Network
人工智能
InheritGuo1 小时前
It’s All About Your Sketch: Democratising Sketch Control in Diffusion Models
人工智能·计算机视觉·sketch
weixin_307779132 小时前
证明存在常数c, C > 0,使得在一系列特定条件下,某个特定投资时刻出现的概率与天数的对数成反比
人工智能·算法·机器学习
封步宇AIGC2 小时前
量化交易系统开发-实时行情自动化交易-3.4.1.6.A股宏观经济数据
人工智能·python·机器学习·数据挖掘
Jack黄从零学c++2 小时前
opencv(c++)图像的灰度转换
c++·人工智能·opencv